结构类型与联合类型

结构类型与联合类型

ID:39629051

大小:2.80 MB

页数:104页

时间:2019-07-07

结构类型与联合类型_第1页
结构类型与联合类型_第2页
结构类型与联合类型_第3页
结构类型与联合类型_第4页
结构类型与联合类型_第5页
资源描述:

《结构类型与联合类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言程序设计(第3版)中国铁道出版社ChinaRailwayPublishingHouse普通高等教育“十一五”国家级规划教材主教材:C语言程序设计(第三版)书号:ISBN978-7-113-09512-3中国铁道出版社2009年2月第3版配套教材:C语言程序设计实验教程书号:ISBN978-7-113-09513-0中国铁道出版社2009年2月第1版作者电子邮箱:Luojian116@126.comwsjwhz@126.com第6章结构类型与联合类型6.1结构类型与联合类型概述6.3动态链表6.2结构类型6.4联合类型6.5位域类型6.6枚举类型结束放

2、映6.1结构类型与联合类型概述结构数据结构能直观地表示客观世界中的许多事物,是由多个不同类型的成员组装而成的复杂数据形态。 这些不同类型的成员信息可以表示为基本类型的数据,也可能仍然是复杂的数据,无法直接表示为基本类型的数据,需要通过不断的数据精化,直到可 以用基本类型的数据来表达为止。结构类型的每个数据成员都需要不同的名称,为避免同结构类型的结构数据的成员名称冲突,C语言要求表示成员数据项时需要给出结构数据名,结构名与成员数据项名称间以英文园点(.)分隔。例如:学生类型的数据组成如下表所示用结构类型描述上述数据结构如下:typedefstruct{Non

3、o;Namename;Sexsex;Gradegrade[4];}Student;4个成员数据项,分别使用了非基本的数据类型,定义类型如下:typedefcharNo[5];typedefcharName[10];typedefcharSex;typedefintGrade;结构数据的内存分配定义一个结构类型的变量,实际上是为结构变量中的每个成员数据项分配内存空间。 结构类型的变量所需分配的内存空间大小是结构类型的所有成员变量所需分配空间大小之和,可以使用运算符sizeof(结构变量名)或sizeof(结构类型名)来计算结构类型变量所需分配的空间大小。结构

4、数据的内存分配 例如:学生类型的一个变量需要分配的内存大小可以通过sizeof(Student)来计算,sizeof也可以计算其它类型的内存大小,这样学生类型的变量也可以通过sizeof(No)+sizeof(Name)+sizeof(Sex)+sizeof(Grade)*4来计算。联合类型联合类型的定义格式与结构类型相似,但其成员变量的内存分配方式不同。联合类型的变量分配时按最大的成员变量所需内存大小来分配,所有成员变量从同一个内存地址共享内存,因此,通过取址操作&得到的成员变量的地址均相同。下图可帮助读者理解不同成员共享内存的方法:例如:要进行学生情况

5、调查,大学生的调查项目为专业,而中学生的调查项目为身高,其它项目均相同,这时可以使用联合方式来实现。 调查表格式如下:C语言可利用联合类型表格式中的共项栏目:专业/身高项目,定义方法如下:typedefstruct{Namename;...Major_Heightmh;}Survey;typedefcharMajor[10];typedefintHeight;typedefunion{Majormajor;Heightheight;}Major_Height;结构类型的定义定义结构数据需要先定义结构类型,结构类型分为命名和匿名两种。定义结构类型的格式str

6、uct[结构类型名] {成员定义表}[结构变量名表];6.2结构类型说明:每个成员变量的定义与一般的变量定义一样,不能后跟初始值并以分号结束,成员变量可以是基本类型也可以构造类型,所有成员变量根据定义的先后顺序分配内存。 结构变量名表给出了多个标识符,以逗号分隔,每个标识符说明了一个结构变量,命名的结构类型可以省略结构变量名表,表示先只定义类型以后再使用。使用结构类型定义结构变量的格式struct结构类型名结构变量名表;说明:结构类型名是已定义的命名结构类型的名称例如:structstudent{charno[6];charname[10];charsex

7、;intgrade[4];}a={"02001","Tom",'M',{90,85,95,80}};structstudentb={"02002","Jane",'M',{80,75,95,60}};使用typedef命令可以命名一个结构类型,这种类型名不需要带上保留字struct就可以使用。格式如下:typedefstruct{成员定义表}结构类型名;说明:与前面的结构类型定义方式不同,该命令只能定义结构类型不能同时定义结构变量,遵循先定义结构类型再定义结构变量的顺序。例如:typedefcharNo[6];typedefcharName[10];typ

8、edefcharSex;typedefintGrade;typed

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。