【C语言练习】018. 定义和初始化结构体

018. 定义和初始化结构体

  • 018. 定义和初始化结构体
    • 1. 定义结构体
      • 示例1:定义一个简单的结构体
      • 输出结果
    • 2. 初始化结构体
      • 示例2:在声明时初始化结构体
        • 输出结果
      • 示例3:使用指定初始化器初始化结构体(C99及以上标准支持)
        • 输出结果
    • 3. 结构体数组
      • 示例4:定义和初始化结构体数组
        • 输出结果
    • 4. 结构体指针
      • 示例5:使用结构体指针
        • 输出结果
    • 5. 嵌套结构体
      • 示例6:定义和初始化嵌套结构体
        • 输出结果

018. 定义和初始化结构体

在C语言中,结构体(struct)是一种用户自定义的数据类型,用于将多个不同类型的数据组合在一起。定义和初始化结构体是C语言编程中的一个重要技能。以下将详细介绍如何定义和初始化结构体。

1. 定义结构体

结构体的定义使用struct关键字,后面跟着结构体的名称和花括号{},花括号内定义了结构体的成员变量。

示例1:定义一个简单的结构体

#include <stdio.h>// 定义一个结构体
struct Person {char name[50]; // 姓名int age;       // 年龄float height;  // 身高
};int main() {// 声明一个结构体变量struct Person person1;// 初始化结构体成员strcpy(person1.name, "Alice");person1.age = 25;person1.height = 165.5;// 输出结构体成员printf("Name: %s\n", person1.name);printf("Age: %d\n", person1.age);printf("Height: %.2f cm\n", person1.height);return 0;
}

输出结果

Name: Alice
Age: 25
Height: 165.50 cm

2. 初始化结构体

结构体可以在声明时直接初始化,也可以在声明后单独赋值。

示例2:在声明时初始化结构体

#include <stdio.h>// 定义一个结构体
struct Person {char name[50];int age;float height;
};int main() {// 在声明时初始化结构体struct Person perso

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/904039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3D版同步帧游戏

以下是实现一个3D版同步帧游戏的详细步骤与完整代码示例。我们将以第一人称射击游戏(FPS)为原型,重点讲解3D空间中的同步机制优化。 项目升级:3D版核心改动 1. 3D坐标系与消息结构 // common/messages.go type Vector3 struct {X float32 `json:"x"`Y float32 `…

卷积神经网络进化史:从LeNet-5到现代架构的完整发展脉络

摘要 本文系统梳理卷积神经网络(CNN)从诞生到繁荣的发展历程。从1998年Yann LeCun开创性的LeNet-5出发&#xff0c;重点解析2012年引爆深度学习革命的AlexNet&#xff0c;并详细拆解后续演进的五大技术方向&#xff1a;网络深度化(VGG)、卷积功能强化(ResNet)、检测任务迁移(F…

在 Windows 中安装 Pynini 的记录

#工作记录 概述 Pynini 是一个用于加权有限状态文法编译的 Python 库&#xff0c;广泛应用于自然语言处理&#xff08;NLP&#xff09;领域。以下记录旨在用于回顾和帮助大家在 Windows 系统中安装 Pynini。 安装思路&#xff1a; 优先用conda虚拟环境 或 在python3.12的vir…

深挖Java之:运算符与输入器

今天我要介绍的是在Java中对于运算符与输入器的一些基础语法运算符与输入器的代码示例以及应用场景&#xff0c;他们在应用上的优势与劣势作说明介绍&#xff1a; 介绍&#xff1a;运算符与输入器是两个基础且关键的概念&#xff0c;它们共同构成了程序与用户、程序与数据之间…

动态规划之多状态问题1

题目解析&#xff1a; 也就是给一个预约数组&#xff0c;选择一些数字&#xff0c;让其总和最大&#xff0c;但不能选择相邻的两个数字 算法原理&#xff1a; 依旧可以根据经验题目 以dp[i]位置结尾时&#xff0c;巴拉巴拉 根据题目要求补充完整&#xff0c;dp[i]&#xff…

计网_可靠传输ARQ机制

2024.09.04&#xff1a;网工老姜&beokayy网工学习笔记 第5节 可靠传输机制 5.1 可靠传输5.2 ARQ机制、ARQ协议5.3 ARQ简介&#xff08;可靠传输&#xff09;5.3.1 停止等待协议&#xff08;1&#xff09;无差错情况&#xff08;2&#xff09;有差错情况确认丢失确认迟到 5.…

华为eNSP:多区域集成IS-IS

一、什么是多区域集成IS-IS&#xff1f; 多区域集成IS-IS是一种基于中间系统到中间系统&#xff08;IS-IS&#xff09;协议优化的网络架构设计&#xff0c;通过多区域协同、路径优化和扩展性增强实现高效路由管理&#xff0c;其核心特征如下&#xff1a; 1、分布式架构与多区…

自定义Dockerfile,发布springboot项目

(1) 上传jar包 把hello项目打成一个可执行的jar包 hello-1.0-SNAPSHOT.jar&#xff0c;把这个jar包上传到linux中 (2) 创建文件&#xff0c;文件名my_hello&#xff08;就是一个Dockerfile&#xff09;&#xff0c;内容如下 #1.定义父镜像(定义当前工程依赖的环境)&#xff1a;…

vscode源代码管理Tab-文件右侧标志(M、A 等)的含义

Git 常用标志(M、A 等)的含义 在 VSCode 的源代码管理&#xff08;Source Control&#xff09;标签页中&#xff0c;文件右侧显示的 Monaco 装饰徽章&#xff08;Badge&#xff09;&#xff08;如 M、A 等&#xff09;&#xff0c;本质上是对 Git 文件状态标志 的可视化呈现。…

基于 vue-flow 实现可视化流程图

vue-flow 是一个基于 Vue.js 的强大且灵活的可视化流程图库&#xff0c;它允许开发者轻松创建交互式的流程图、工作流图、节点图等。 主要特点 易于使用 &#xff1a;提供了简洁的 API 和组件&#xff0c;开发者可以快速上手并创建复杂的流程图。高度可定制 &#xff1a;支持…

【愚公系列】《Manus极简入门》015-时间管理顾问:“商业时间规划大师”

&#x1f31f;【技术大咖愚公搬代码&#xff1a;全栈专家的成长之路&#xff0c;你关注的宝藏博主在这里&#xff01;】&#x1f31f; &#x1f4e3;开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主&#xff01; &#x1f…

OpenRouter:轻松集成多家AI大模型的统一接口平台指南

想象一下&#xff0c;你已经在系统中集成了 OpenAI API&#xff0c;但现在你希望通过 Google Gemini 和 Anthropic API 扩展能力。你会为每个服务商单独创建和管理账户&#xff0c;使用不同的 SDK&#xff0c;让代码变得更加复杂吗&#xff1f;还是更倾向于只用一行代码就能访问…

iOS启动优化:从原理到实践

前言 在iOS应用开发中&#xff0c;启动速度是影响用户体验的重要因素之一。研究表明&#xff0c;启动时间每增加1秒&#xff0c;用户留存率就会下降约7%。本文将深入探讨iOS启动优化的各个方面&#xff0c;从底层原理到具体实践&#xff0c;帮助开发者打造更快的应用启动体验。…

洛谷 P1850 [NOIP 2016 提高组] 换教室

题目传送门 前言 终于自己想出概率期望 d p dp dp 的状态了&#xff0c;但是依旧没能相对转移方程。&#xff08;招笑&#xff09; 暴力 这题部分分和特殊情况分给的挺多的&#xff0c;所以先拿部分分。 一、思路 先跑一边 F l o y d Floyd Floyd 最短路求出两点间最短距…

基于Springboot+Vue3.0的前后端分离的个人旅游足迹可视化平台

文章目录 0、前言1、前端开发1.1 登录注册页面1.2 首页1.3 足迹管理1.3.1 足迹列表1.3.2 添加足迹1.4 个人中心1.4.1 足迹成就1.4.2 个人信息1.4.3 我的计划2、后端开发2.1 用户接口开发2.2 足迹点接口2.3 旅游计划接口3、完整代码资料下载0、前言 项目亮点: 前端用户权限动态…

大数据应用开发与实战(1)

一、Matplotlib 基础认知 功能特性&#xff1a;是 Python 强大的绘图库&#xff0c;能将数据以多样化的图表形式呈现&#xff0c;涵盖静态、动态和交互式图表&#xff0c;支持多种输出格式&#xff0c;满足不同场景下的数据可视化需求。 二Matplotlib Pyplott 函数绘图技巧&a…

神经网络的基本概念与深度解析——基于生物机制的仿生建模与工程实现

广义上讲&#xff0c;神经网络是泛指生物神经网络与人工神经网络这两个方面。所谓生物神经网络是指由中枢神经系统&#xff08;脑和脊髓&#xff09;及周围神经系统&#xff08;感觉神经、运动神经、交感神经、副交感神经等&#xff09;所构成的错综复杂的神经网络&#xff0c;…

Linux53 百度网盘运行(下载devtoolset11后仍提示stdc++3.0.29缺失 计划用docker容器隔离运行,计划后续再看)

算了 放弃 都用到docker了 计划先看看系统服务后续再研究吧 百度网盘运行(下载devtoolset11后仍提示stdc3.0.29缺失 计划用docker容器隔离运行 但是由于系统服务未扎实&#xff0c;计划后续再看 重新下了el7的版本 刚才已启动成功 单输入xlock不启动 切换用户也不启动 …

高维亚空间超频物质变压缩技术 第27次CCF-CSP计算机软件能力认证

很经典的dp问题&#xff1a; 设dp数组为f[i]前i个黄金的最小成本 递推公式就是遍历之前0-j的dp[j] 再加上后面这一段的成本取min 而计算后面的成本需要段体积 使用前缀和储存体积即可 注意题目限制条件每段最大m需要递增 所以遇到某些问题需要continue 每段内编号最大的黄…

里氏替换原则(LSP)

太好了&#xff0c;现在我们来讲解 SOLID 中非常核心的 LSP&#xff1a;里氏替换原则&#xff08;Liskov Substitution Principle&#xff09;。 我会一步步讲清楚&#xff1a; 什么是 LSP&#xff1f;为什么重要&#xff1f;优劣分析Python 正反例子清晰的结构图&#xff08…