您所在位置: 网站首页 / 结构类型与联合类型学习教案.pptx / 文档详情
结构类型与联合类型学习教案.pptx 立即下载
2024-09-04
约2.5万字
约104页
0
492KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

结构类型与联合类型学习教案.pptx

结构类型与联合类型学习教案.pptx

预览

免费试读已结束,剩余 99 页请下载文档后查看

6 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

会计学主教材:C语言程序设计(第三版)书号:ISBN978-7-113-09512-3中国铁道出版社2009年2月第3版配套(pèitào)教材:C语言程序设计实验教程书号:ISBN978-7-113-09513-0中国铁道出版社2009年2月第1版作者电子邮箱:Luojian116@126.com		wsjwhz@126.com第6章结构类型(lèixíng)与联合类型(lèixíng)6.1结构类型与联合(liánhé)类型概述
结构(jiégòu)类型的每个数据成员都需要不同的名称,为避免同结构(jiégòu)类型的结构(jiégòu)数据的成员名称冲突,C语言要求表示成员数据项时需要给出结构(jiégòu)数据名,结构(jiégòu)名与成员数据项名称间以英文园点(.)分隔。
例如(lìrú):学生类型的数据组成如下表所示


用结构类型(lèixíng)描述上述数据结构如下:

typedefstruct{
	Nono;
	Namename;
	Sexsex;
	Gradegrade[4];
}Student;
4个成员数据项,分别使用了非基本的数据类型(lèixíng),定义类型(lèixíng)如下:
typedefcharNo[5];
typedefcharName[10];
typedefcharSex;
typedefintGrade;结构数据的内存分配定义一个结构类型的变量,实际上是为结构变量中的每个成员数据项分配内存空间。结构类型的变量所需分配的内存空间大小是结构类型的所有成员变量所需分配空间大小之和,可以使用(shǐyòng)运算符sizeof(结构变量名)或sizeof(结构类型名)来计算结构类型变量所需分配的空间大小。结构数据的内存分配例如:学生类型的一个变量需要分配的内存大小可以通过(tōngguò)sizeof(Student)来计算,sizeof也可以计算其它类型的内存大小,这样学生类型的变量也可以通过(tōngguò)sizeof(No)+sizeof(Name)+sizeof(Sex)+sizeof(Grade)*4来计算。联合类型联合类型的定义格式与结构类型相似,但其成员变量的内存分配方式不同。联合类型的变量分配时按最大的成员变量所需内存大小来分配,所有成员变量从同一个内存地址共享内存,因此,通过取址操作&得到的成员变量的地址均相同。
下图可帮助读者理解(lǐjiě)不同成员共享内存的方法:
例如:要进行学生情况调查,大学生的调查项目为专业,而中学生的调查项目为身高,其它项目均相同,这时可以使用联合方式(fāngshì)来实现。调查表格式如下:C语言可利用(lìyòng)联合类型表格式中的共项栏目:专业/身高项目,定义方法如下:

typedefstruct{
	Namename;
	...
	Major_Heightmh;
}Survey;
typedefcharMajor[10];
typedefintHeight;
typedefunion{
	Majormajor;
	Heightheight;
}Major_Height;
结构类型的定义(dìngyì)定义(dìngyì)结构数据需要先定义(dìngyì)结构类型,结构类型分为命名和匿名两种。

定义(dìngyì)结构类型的格式struct[结构类型名]{	成员定义(dìngyì)表	}[结构变量名表];说明:每个成员变量的定义与一般的变量定义一样,不能后跟初始值并以分号结束,成员变量可以是基本(jīběn)类型也可以构造类型,所有成员变量根据定义的先后顺序分配内存。结构变量名表给出了多个标识符,以逗号分隔,每个标识符说明了一个结构变量,命名的结构类型可以省略结构变量名表,表示先只定义类型以后再使用。
使用结构类型定义结构变量的格式struct结构类型名结构变量名表;
说明:结构类型名是已定义的命名结构类型的名称例如(lìrú):
structstudent{
	charno[6];
	charname[10];
	charsex;
	intgrade[4];
}a={"02001","Tom",'M',{90,85,95,80}};
structstudentb={"02002","Jane",'M',{80,75,95,60}};使用typedef命令可以命名一个(yīɡè)结构类型,这种类型名不需要带上保留字struct就可以使用。格式如下:typedefstruct{成员定义表}结构类型名;

说明:与前面的结构类型定义方式不同,该命令只能定义结构类型不能同时定义结构变量,遵循先定义结构类型再定义结构变量的顺序。例如(lìrú):typedefcharNo[6];typedefcharName[10];typede
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

结构类型与联合类型学习教案

文档大小:492KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用