- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章结构体、共同体与枚举
第 章 结构体、共同体和枚举类型 ;结构体 ; 数组中的每一个元素属于同一种数据类型,利用数组处理大量的同类型 数据是很方便的。但是在实际应用中,常常需要把不同类型而关系又非常密切的数据组织在一起,形成一个整体,以便于统一管理。
一种称为结构体的数据类型,可以用来描述这种类型的数据集。;一:结构的定义 结构是一种派生类数据类型,在使用结构变量之前须先对结构进行定义。定义结构的一般格式为:
struct 结构名 ??? { 类型? 变量名; ???????? 类型? 变量名; ???? ... }; 结构名是结构的标识符不是变量名,花括号内的变量称之为结构的成员,类型可以是我们以前所学到的任意类型,甚至可以是结构但不能是结构本身,每个成员的类型可以不一样。 注意:每一个结构定义必须以分号结束!; 由于定义结构类型只是定义了一种数据类型,因此,当编译器编译结构体的定义时,并不为结构体中的成员分配任何内存空间,从而在定义结构体的成员时,不能指定成员的存储类型为auto、register、extern,但可以指定结构体成员的存储类型为static,其特点和作用将在以后介绍。 ;二:结构变量的定义 声明结构变量与声明其它类型变量类似,格式为: struct 结构名 结构变量名; 如: struct student { int No; char name[8]; float score; }; student stu1,stu2 ,stu[30];; 与基本数据类型类似,在定义结构体类型的变量时,也可对该变量进行初始化,其方法与对数组的初始化方法类似,即采用用花括号括起来的初始值表。
注意,初始值表中的数据类型必须与结构体中对应元素的类型一致(兼容的除外),否则会产生编译错误。另外,初始值表中的数据的个数不能大于结构体中元素的个数。
在定义结构体类型的变量时,也可以指定变量的存储类型。 ;三:结构变量的初始化 struct student { int No; char name[8]; float score; }; student stu1={9601, ”张三“, 96.5}; student stu[2]={{9601, ”张三“,96.5} ,{9602,”李四“,80}};或者 struct student { int No; char name[8]; float score; }stu[2]={{9601, ”张三“, 96.5} ,{9602,”李四“,80}};; 对于结构体类型的变量,在编译过程中,编译系统将为这些变量分配相应的内存空间,所分配的空间大小原则上为结构体中所有成员所占空间的总和。
结构体变量也存在作用域的问题,其作用域与一般变量的作用域相同。; 结构体类型变量的使用 ;struct student { int No; char name[8]; float score; };; 结构体类型变量本身也可参与一些运算:
1) 同类型的结构体变量可以相互赋值。
2) 结构体类型变量不能直接进行输入输出。
3) 结构体类型变量可以作为函数的参数,函数的返回值也可以是结构体类型。当函数的形参与实参为结构体类型的变量时,其结合方式属于值传递方式。;结构体数组 ; 共同体 ; 定义共同体类型的一般格式为:
union 共同体名{ 类型名 变量名1; 类型名 变量名2; … };
共同体类型变量的说明方法与结构体类型变量的说明方法类似,也有三种方法。; 由于共同体中的成员占用同一个内存空间,该存储空间的大小为占用存储空间最大的成员所占用的字节数。另外,在使用一个共同体类型变量的成员之前必须先指定该成员的值。;【例】以下程序的运行结果是什么? union u_type { int i; char ch[8]; // A long s; }; struct st_type { u_type u; flo
您可能关注的文档
最近下载
- 水闸横剖面图识读水利工程图识读与绘制.pptx VIP
- 国家建筑标准设计图集20S515 钢筋混凝土及砖砌排水检查井.pdf VIP
- 救援技术毕业论文题目(647个).doc VIP
- l临床医生三基考试试题及答案.doc VIP
- 苏教版高一生物必修一知识点总结.doc VIP
- 12J7-3-内装修吊顶标准规范(OCR).pdf VIP
- 全国翻译专业资格(水平)考试--CATTI精品课件.ppt VIP
- 《深化国有企业改革》课件.ppt VIP
- 基于AI技术的增强型汽车动力电池预测方法及系统.pdf VIP
- (2025秋新版)部编版三年级道德与法治上册《第10课《公共场所的文明素养》 教学设计.docx VIP
原创力文档


文档评论(0)