- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计(第3版) 主 教 材:C语言程序设计(第三版) 书 号:ISBN 978-7-113-09512-3 中国铁道出版社 2009年2月 第3版配套教材:C语言程序设计实验教程书 号:ISBN 978-7-113-09513-0 中国铁道出版社 2009年2月 第1版作者电子邮箱: Luojian116@126.com wsjwhz@126.com 6.1 结构类型与联合类型概述 结构数据结构能直观地表示客观世界中的许多事物,是由多个不同类型的成员组装而成的复杂数据形态。这些不同类型的成员信息可以表示为基本类型的数据,也可能仍然是复杂的数据,无法直接表示为基本类型的数据,需要通过不断的数据精化,直到可以用基本类型的数据来表达为止。 结构类型的每个数据成员都需要不同的名称,为避免同结构类型的结构数据的成员名称冲突,C语言要求表示成员数据项时需要给出结构数据名,结构名与成员数据项名称间以英文园点(.)分隔。 例如:学生类型的数据组成如下表所示 用结构类型描述上述数据结构如下: typedef struct { No no; Name name; Sex sex; Grade grade[4]; } Student; 4个成员数据项,分别使用了非基本的数据类型,定义类型如下: typedef char No[5]; typedef char Name[10]; typedef char Sex; typedef int Grade; 结构数据的内存分配定义一个结构类型的变量,实际上是为结构变量中的每个成员数据项分配内存空间。结构类型的变量所需分配的内存空间大小是结构类型的所有成员变量所需分配空间大小之和,可以使用运算符sizeof(结构变量名)或sizeof(结构类型名)来计算结构类型变量所需分配的空间大小。 结构数据的内存分配例如:学生类型的一个变量需要分配的内存大小可以通过sizeof(Student)来计算,sizeof也可以计算其它类型的内存大小,这样学生类型的变量也可以通过sizeof(No)+sizeof(Name)+sizeof(Sex)+sizeof(Grade) *4 来计算。 联合类型联合类型的定义格式与结构类型相似,但其成员变量的内存分配方式不同。联合类型的变量分配时按最大的成员变量所需内存大小来分配,所有成员变量从同一个内存地址共享内存,因此,通过取址操作得到的成员变量的地址均相同。 下图可帮助读者理解不同成员共享内存的方法: 例如: 要进行学生情况调查,大学生的调查项目为专业,而中学生的调查项目为身高,其它项目均相同,这时可以使用联合方式来实现。调查表格式如下: C语言可利用联合类型表格式中的共项栏目:专业/身高项目,定义方法如下: typedef struct { Name name; ... Major_Height mh; } Survey; typedef char Major[10]; typedef int Height; typedef union { Major major; Height height; } Major_Height; 6.2 结构类型 结构类型的定义定义结构数据需要先定义结构类型,结构类型分为命名和匿名两种。 定义结构类型的格式struct [结构类型名]{ 成员定义表 } [结构变量名表]; 说明:每个成员变量的定义与一般的变量定义一样,不能后跟初始值并以分号结束,成员变量可以是基本类型也可以构造类型,所有成员变量根据定义的先后顺序分配内存。结构变量名表给出了多个标识符,以逗号分隔,每个标识符说明了一个结构变量,命名的结构类型可以省略结构变量名表,表示先只定义类型以后再使用。 使用结构类型定义结构变量的格式struct 结构类型名 结构变量名表; 说明:结构类型名是已定义的命名结构类型的名称 例如: struct student { char no[6]; char name[10]; char sex; int grade[4]; } a={02001,Tom,M,{90,85,95,80}}; struct student b={02002,Jane,M,{80,75,95,60}}; 使用typedef命令可以命名一个结构类型,这种类型名不需要带上保留字struct就可以使用。格式如下:typedef stru
您可能关注的文档
- C语言程序设计任务教程 彭德林 柴方艳 第2章新.ppt
- C语言程序设计任务教程 彭德林 柴方艳 第3章新.ppt
- C语言程序设计任务教程 彭德林 柴方艳 第4章新.ppt
- C语言程序设计任务教程 彭德林 柴方艳 第6章新.ppt
- C语言程序设计任务教程 彭德林 柴方艳 第9章新.ppt
- C语言程序设计任务教程 彭德林 柴方艳 第12章新.ppt
- C语言程序设计实例教程 潘志安 朱运乔 余小燕 第3章 运算符和表达式新.ppt
- C语言程序设计实例教程 潘志安 朱运乔 余小燕 第6章 循环结构新.ppt
- C语言程序设计实例教程 潘志安 朱运乔 余小燕 第8章 函数新.ppt
- C语言程序设计实例教程 潘志安 朱运乔 余小燕 第10章 指针新.ppt
- C语言程序设计(第三版) 罗坚 王声决 主编 第7章 文件新.ppt
- C语言程序设计(第三版) 恰汗.合孜尔 第1章 概论新.ppt
- C语言程序设计(第三版) 恰汗.合孜尔 第3章 选择结构程序设计新.ppt
- C语言程序设计(第三版) 恰汗.合孜尔 第4章 循环结构程序设计新.ppt
- C语言程序设计(第三版) 恰汗.合孜尔 第5章 数组新.ppt
- C语言程序设计(第三版) 恰汗.合孜尔 第8章结构体和共用体新.ppt
- C语言程序设计(第三版) 恰汗.合孜尔 第9章 文件新.ppt
- C语言程序设计(第三版)-林小茶 C_ch4新.ppt
- C语言程序设计(第三版)-林小茶 C_ch6新.ppt
- C语言程序设计(第三版)-林小茶 C_ch7新.ppt
最近下载
- 侠客风云传养成模式触发剧情一览.pdf VIP
- YST 582-2013 电池级碳酸锂.pdf
- 淘股吧高手语录.docx VIP
- 2024~2025学年上学期七年级第一次月考数学试题(含答案).pdf VIP
- GB-T6284-1986化工产品中水分含量测定的通用方法重量法.pdf
- MSC:人工智能赋能可持续发展和投资白皮书.pdf VIP
- 24J306 窗井、设备吊装口、排水沟、集水坑图集.docx VIP
- 2014年深圳市坪山新区主要病媒生物监测及白纹伊蚊抗药性研究.pdf VIP
- T∕CBDA 69-2023 建筑装饰装修碳排放计算标准.pdf
- 国际私法(暨南大学)中国大学MOOC 慕课 章节测验 期末考试答案.docx VIP
文档评论(0)