- 12
- 0
- 约2.72万字
- 约 104页
- 2017-04-28 发布于四川
- 举报
第六章结构类型与联合类型
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章 结构类型与联合类型;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;;
结构类型的定义定义结构数据需要先定义结构类型,结构类型分为命名和匿名两种。
定义结构类型的格式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 struct {成员定义表} 结构类型名;
说明:与前面的结构类型定义方式不同,该命令只能定义结构类型不能同时定义结构变量,遵循先定义结构类型再定义结构变量的顺序。;例如:typedef char No[6];typedef char Name[10];typed
您可能关注的文档
- 第五课_颜色与色调调整.ppt
- 第五课新陈代谢[二].ppt
- 第五课明清之际的进步思想课件[岳麓版必修三].ppt
- 第五课洋务运动课件1.ppt
- 第五部分.内置对象.ppt
- 第八.1储层敏感性分析.ppt
- 第五课植物与土壤.ppt
- 第五部分内置对象.ppt
- 第八章1半导体温度传感器.ppt
- 第八章AIcs5绘制夜景效果.ppt
- 2026年低频使用试题及答案.doc
- 2026辽宁沈阳水务集团有限公司所属子企业拟聘用人员人示备考题库参考答案详解.docx
- 无人机GPS失稳时的惯性导航.docx
- 春季流感科学预防与健康防护指南.pptx
- 综合实践活动课案例-我们的生活需要广告吗2.doc
- 2026辽宁沈阳新华购书中心有限责任公司招聘图书管理员2人备考题库附答案详解.docx
- 2026辽宁沈阳新华购书中心有限责任公司招聘图书管理员2人备考题库带答案详解.docx
- 初中七年级地理下学期期末大单元复习教案:国家地理探究与核心素养整合.docx
- 2026辽宁沈阳经济技术开发区中德高端装备制造产业园选聘30人备考题库及答案详解1套.docx
- 2026辽宁沈阳经济技术开发区中德高端装备制造产业园选聘30人备考题库及参考答案详解1套.docx
原创力文档

文档评论(0)