- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 结构体与共用体
目录
CONTENT
9.1
9.2
9.3
结构体
结构体数组
结构体指针
9.4
9.5
9.6
结构体嵌套
线性表
共用体
9。1
结构体
9.1.1 定义结构体类型
结构体是一种构造数据类型,它由若干个成员组成,其中的每一个成员可以是一个基本 数据类型或一个构造类型。定义结构体类型就是对结构体内部构成形式进行描述,即对每一 个成员进行声明,其定义语法格式如下所示。
关键字 struct 表示声明结构,结构体名表示该结构的类型名,大括号中的变量构成成员 列表。
9.1.1 定义结构体类型
注意: 在声明结构体时,需要注意大括号最后的分号。
9.1.1 定义结构体类型
举例:声明一个结构体,如下所示。
9.1.2 定义结构体变量
定义结构体后即可像定义基本数据类型变量一样定义结构体类型变量。结构体变量的定 义语法如下所示。
定义一个基本类型的变量与定义结构体类型变量的不同之处在于,后者不仅要求指定变 量为结构体类型,而且要求指定为某一特定的结构体类型,如 struct Product,而定义基本类 型时,只需指定类型即可,如 int。
举例:定义一个结构体类型变量,如下所示。
也可以在声明结构体类型的同时定义变量,其语法如下所示。
9.1.2 定义结构体变量
注意:
声明结构体类型的同时定义变量,结构体变量名要在分号之前。
9.1.2 定义结构体变量
定义结构体类型的变量不仅可以定义一个,也可以定义多个,其语法如下所示。
举例:定义多个结构体类型变量,如下所示。
定义结构体类型变量甚至可以不指定结构体名,其语法格式如下所示。
9.1.2 定义结构体变量
举例:不指定结构体名,定义结构体类型变量,如下所示。
9.1.3 结构体初始化
结构体类型与其他基本类型一样,也可以在定义结构体变量时指定初始值,示例如下所 示。
需要注意的是,初始化的值必须与结构体中的成员按顺序一一对应。以上定义也可以写 为如下形式。
9.1.3 结构体初始化
在 Linux 系统内核中,还有另一种初始化方式,如下所示。
9.1.4 结构体变量的引用
对结构体变量进行赋值、读写或运算,实质上是对结构体成员进行操作。引用结构体中 的成员,需要在结构体变量名的后面加成员运算符“.”和成员的名字,其语法如下所示。
举例:对已经定义的结构体进行赋值操作,如下所示。
9.1.4 结构体变量的引用
引用结构体变量,对结构体成员进行操作,如例 9-1 所示。
分析:
如上述示例中,第3~7行代码声明结构体Product1,第9~13行代码定义结构体Product1 的变量名并初始化。第 15~18 行代码声明结构体 Product2 以及定义结构体变量并初始化。 第 22~24 行代码引用变量,输出结构体 Product1 中的成员信息。第 26、27 行代码同样引 用变量,输出结构体 Product2 中的成员信息。
9.2
结构体数组
9.2.1 定义结构体数组
定义结构体数组与定义结构体变量类似,其语法定义如下所示。
举例:定义结构体数组,具体如下所示。
如上述定义方式,表示数组的元素个数为 5,每个元素都是结构体 struct Product,结构 体中的成员都一致。
9.2.2 初始化结构体数组
初始化结构体数组可采用如下形式。
举例:初始化结构体数组,如下所示。
9.2.2 初始化结构体数组
使用结构体数组实现需求:存储部分学生的信息,然后输出学生信息。如例 9-2 所示。
分析:
如上述示例中,第 3~12 行代码定义结构体数组并完成初始化。第 18 行代码输出结构 体的名字信息。第 19 行代码输出结构体的学号信息。第 20 行代码输出结构体的性别信息。 第 21 行代码输出结构体的年级信息。
9.3
结构体指针
4.1.1 什么是Webpack
设定一个指针变量用来指向一个结构体变量,此时该指针变量保存的值是结构体变量的 起始地址,该指针称为结构体指针。结构体指针的定义形式如下所示。
如上述定义形式,结构体名必须是已经定义过的结构体类型。使用结构体指针访问结构 体成员,可以采用两种方式。
4.1.1 什么是Webpack
1. 点运算符引用结构体成员
使用点运算符引用结构体成员,如下所示。
*结构体指针变量名(*号表示引用)表示的是结构体变量,因此上述访问方式与结构体 变量引用一致。
注意:
*结构体指针变量名必须要使用括号,因为点运算符的优先级最高,如果不使用括号, 则会先执行点运算再执行*运算。
4.1.1 什么是Webpack
通过指针使用点运算符引用结构体变量的成员,如例 9-3 所示。
分析:
如上述示例中,第 3~8 行代码定义结构体并完成初始化。第 14 行代码定义结构体类
您可能关注的文档
- 数据新闻 第5章 数据分析和可视化工具.pptx
- 数据新闻 第6章 其他数据新闻制作工具.pptx
- 《短视频策划、拍摄与制作》教学课件第1章短视频概述.pptx
- Altium Designer 19 电子线路板设计与制作PPT课件(共6章)第1章概述.pptx
- Altium Designer 19 电子线路板设计与制作PPT课件(共6章)第2章稳压电源电路的制图与制板.pptx
- Altium Designer 19 电子线路板设计与制作PPT课件(共6章)第3章人体感应灯电路的制图与制板.pptx
- Altium Designer 19 电子线路板设计与制作PPT课件(共6章)第4章抢答器电路的制图与制板.pptx
- Altium Designer 19 电子线路板设计与制作PPT课件(共6章)第5章3D打印机主控板的制图与制板.pptx
- Altium Designer 19 电子线路板设计与制作PPT课件(共6章)第6章电子秤仪表的制图与制板.pptx
- C语言程序设计PPT课件(共13章)第1章C 语言概述.pptx
最近下载
- 04重载交通水泥路面设计.doc
- 年产12万吨苯乙烯精制工艺设计.docx
- 电工基础知识(全面)课件课件(完整版)160页.pptx VIP
- 装配式建筑在装配式港口码头中的应用与优化,2025年行业展望报告.docx
- 《新媒体文案创作与传播(第2版微课版)》全套教学课件.pptx
- 课题申报参考:中华优秀传统家文化融入大学生积极心理品质培育路径研究.docx VIP
- 2024年中国第三方支付行业研究报告.pdf
- 水产动物疾病学3免疫学.ppt
- 课题申报参考:中华优秀传统医德文化融入医药院校“思想道德与法治”课教学研究.docx VIP
- (高清版)DB32∕T 5040-2025 家用电梯智能化要求及验收规范.pdf VIP
原创力文档


文档评论(0)