- 1、本文档共52页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章结构体共用体
第8章 结构体、共用体与枚举类型 结构体 共用体 位段结构 枚举类型 用typedef定义类型 结构体应用举例 8.1 结构体 一、结构体类型的定义 结构体是一种构造数据类型,用于把不同类型的数据组合成一个整体------ 自定义数据类型 结构体类型的定义: 结构体类型还可以嵌套定义,但这种嵌套不能包含自身,既不能由自己定义 二、结构体类型变量 结构体类型变量的定义 先定义结构体类型,再定义结构体变量 注意: 结构体类型与结构体变量是不同的概念; 类型:不分配内存; 变量:分配内存 类型:不能赋值、存取、运算; 变量:可以 结构体变量中的成员,可以单独使用,它的作用与地位相当于普通变量; 结构体成员名与程序中变量名可重名,两者不代表同一对象,不会混淆; 结构体变量在内存中占有一段连续的内存空间,并按照成员定义的顺序有序存储它的各个成员,且每个成员所占有的空间由其自身的类型决定。 2. 结构体类型变量的引用 在ANSI C中除了允许具有相同类型的结构变量相互赋值以外,一般结构体变量的使用,包括赋值、输入、输出、运算等都是通过结构体变量的成员来实现的。 3. 结构体类型变量的初始化 在初始化时,按照所定义的结构体类型的数据结构,依次写出各初始值,在编译时就将它们赋给此变量中各成员;对应结构体变量定义的三种形式均可进行初始化 如果一个结构体类型内又嵌套另一个结构体类型,则初始化时仍然是对各个基本类型的成员赋值 4. 结构体变量的输入与输出 C语言不允许把一个结构体变量作为一个整体进行输入或输出 ,而应该按各成员变量进行输入输出 ,且各成员在被存储和被引用时与相应类型的普通变量相同 三、 结构体类型数组 结构体数组的每一个元素都是具有相同类型的结构体变量 1. 结构体类型数组的定义 先定义结构体类型,再定义结构体数组 定义结构体类型的同时定义结构体数组 直接定义结构体类型数组 2. 结构体数组的初始化 对结构体数组初始化时可以分行赋值或顺序赋值 当所赋初值的数据组的个数和数组元素个数相等时,数组元素个数可以省略不写,少于则要保留数组元素个数 当不完全赋值时,系统自动对未赋值的元素或元素的成员赋零值 3. 结构体数组的引用 结构体数组中每个元素相当于一个结构体变量,则对数组中某个元素的成员的用方法为: 结构体数组名[元素下标]. 结构体成员名 说明: 结构体数组元素可以赋给同一结构体数组中的另一个元素或同一类型的其它变量; 不能把结构体数组元素作为一个整体直接输入输出,必须以单个成员为对象进行输入输出。 四、结构体类型指针 一个结构体变量在内存中占有一段连续的内存空间,当用一个指针变量指向某个结构体变量时,该指针变量称为结构体指针变量;它的值是其所指向的结构体变量的首地址 。 例8.4 结构体类型指针举例 #includestdio.h struct st { int num; char *name; char sex; float score; } st1 = { 10004, Zhang Ying, F, 88.5}, *p1; main() { p1=st1; printf( Number=%d\nName=%s\n, st1.num, st1.name); printf( Sex=%c\nScore=%f\n\n, st1.sex, st1.score); printf( Number=%d\nName=%s\n, (*p1).num, (*p1).name); printf( Sex=%c\nScore=%f\n\n, (*p1).sex, (*p1).score); printf( Number=%d\nName=%s\n, p1-num, p1-name); printf( Sex=%c\nScore=%f\n\n, p1-sex, p1-score); } 2. 指向结构体数组的指针 结构体指针变量可以指向一个结构体数组,也可指向结构体数组的一个元素,但不可指向结构体变量的成员 。 五、结构体与函数 用结构体变量作为函数参数 用结构体变量的成员作参数,这和普通变量作参数相同;形参和实参都是结构体变量则要求实参和形参类型相同;上述两种情况都是值传递方式。 main() { void func( struct data parm ); struct data arg; arg.a = 10; arg.b = 20; arg.c = arg.a + arg.b; func( arg )
您可能关注的文档
- 第7章_单片机的系统扩展.ppt
- 第7章_国际货物运输.ppt
- 第7章_对外投资.ppt
- 第7章_物流配送.ppt
- 第7章_系统实施.ppt
- 第7章_计算机控制系统软件设计.ppt
- 第7章_驱_动_桥.ppt
- 第7章 损失性费用的核算.ppt
- 第7章 物体的表达方法.ppt
- 第7章 组合逻辑电路及其应用.ppt
- 2024年河北省邢台市平乡县丰州镇招聘社区工作者真题含答案详解.docx
- 食品饮料行业数字化营销与电商运营成本控制策略报告2025.docx
- 2024年河北省邢台市巨鹿县阎疃镇招聘社区工作者真题附答案详解.docx
- 高中数字素养评价指标体系构建中数字创新能力培养的路径分析教学研究课题报告.docx
- 2025年中国液体数字锁定平衡阀数据监测研究报告.docx
- 小学生课堂注意力培养与教师教学效果的关系研究教学研究课题报告.docx
- 基于人工智能的高中化学学生个性化学习需求动态研究及教学策略改进教学研究课题报告.docx
- 《植物工厂多层立体栽培模式光环境调控对植物光合作用及生长周期的影响研究趋势》教学研究课题报告.docx
- 2025年中国木地筘片行业投资前景及策略咨询研究报告.docx
- 《博物馆文创产品市场定位与消费者购买行为关系研究》教学研究课题报告.docx
最近下载
- 小学奥数教师版(合辑)1-1-2-3 分数四则混合运算综合.pdf VIP
- 小学奥数合辑(学生用书)1-1-2-3 分数四则混合运算综合.pdf VIP
- 心电监护操作流程课件(PPT 34张).pptx VIP
- 高考数学三年真题(2023-2025年)《统计与概率》真题分类汇编含答案.docx VIP
- 高斯小学奥数五年级上册含答案_分数应用题.doc VIP
- 药食同源发酵项目可行性研究报告建议书新建申请备案案例范文解读.doc VIP
- 2024年广东省高考政治试卷(真题+答案).pdf VIP
- 小学数学 奥数思维《计算:小数的巧算》专项训练2(含解析).docx VIP
- 智慧城市排水防涝系统改造与优化创新研究.docx VIP
- 核心稳定性与核心力量训练.ppt
文档评论(0)