C程序设计 第9章 结构型与共用型
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上一页
返回
9.2 共用型
9.2.1共用型与共用型的定义
共用型和结构型类似,也是一种由用户自己定义的数据类型, 也可以由若干种数据类型组合而成,组成共用型数据的若干 数据也称为成员。和结构型不同的是,共用型数据中所有成 员占用相同的内存空间(以击要内存空间最大的成员的要求为 准)。设置这种数据类型的主要目的就是节省内存。 共用型击要用户在程序中自己定义,然后才能用这种数据类 型来定义相应的变量、数组、指针等。
上一页
下一页
返回
9.1 结构型
9.1.4结构型数组的定义
数组的元素也可以是结构型的,因此可以构成结构型数组。 结构型数组的每一个元素都具有相同结构型。在实际应用中, 经常用结构型数组来表小具有相同数据结构的一个群体,如 一个班的学生档案,一个车间的职工工资表等。定义方法和 结构型变量相似,只说明它为数组类型即可。
C语言不仅提供了丰富的数据类型,而目还允许用户用类型 定义符typedef定义类型说明符,也就是说允许用户为数据 类型取“别名”。 用typedef定义数组、指针、结构型等类型将带来很大的方 便,不仅使程序书写简单,而目使意义更为明确,因而增强 了可读性。 typedef 原类型名 新类型名 其中,新类型名一般用大写表示,以便于区别。 虽然也可用宏定义来代替typedef的功能,但是宏定义是由 编译预处理完成的,而用typedef定义类型是在编译时完成 的,后者更为灵活方便。
上一页
下一页
返回
9.2 共用型
9.2.2共用型变量的定义和使用
1.共用型变量的定义 共用型变量的定义与结构型变量定义相似,包括3种形式: ①union共用型名变量名表; ② union共用型名 成员表; 变量名表; ③union 成员表; 变量名表;
上一页
下一页
返回
上一页
下一页
返回
9.1 结构型
9.1.5结构型指针变量的定义和使用
1.指向结构型变量的指针变量 一个指针变量当用来指向一个结构型变量时,称之为结构型 指针变量。结构型指针变量中的值是所指向的结构型变量的 首地址。通过结构型指针即可访问该结构型变量,这与数组 的指针和函数的指针是相同的。 结构型指针变量定义的一般形式为: struct结构型名*结构型指针变量名;
上一页
下一页
返回
9.1 结构型
3.结构型指针变量作函数参数 在ANSI C标准中允许用结构型变量作函数参数进行整体传 送。但是这种传送要将全部成员逐个传送,特别是成员为数 组时将会使传送的时间和空间开销很大,严重地降低了程序 的效率。因此最好的办法就是使用指针,即用指针变量作函 数参数进行传送。这时,由实参传向形参的只是地址,减少 了时间和空间的开销,而又一次体现了使用指针的好处。
第9章 结构型与共用型
9.1 9.2 9.3 9.4
结构型 共用型 枚举型 用typedef定义类型
9.1 结构型
9.1.1结构型与结构型的定义
结构型是一种构造类型,它是由若干“成员”组成的,每一 个成员可以是一个基本数据类型或者又是一个构造类型。结 构型是一种“构造”而成的数据类型,在说明和使用之前必 须先定义它,也就是构造它,如同在说明和调用函数之前要 先定义函数一样。
9.1.3结构型变量成员的引用
在程序中使用结构型变量时,往往不把它作为一个整体来使 用。在ANSI C中,除了允许具有相同类型的结构型变量可 以相互赋值以外,一般对结构型变量的使用,包括赋值、输 入、输出、运算等都是通过结构型变量的成员来实现的。 表示结构型变量成员的一般形式是: 结构型变量名.成员名 其中“.”称为成员运算符,优先级最高。
返回
9.2 共用型
2.共用型变量成员的引用 与结构型变量类似,共用型成员的引用也有3种形式。 3.共用型变量赋初值 共用型变量也可以在定义时直接进行初始化,但这个初始化 只能对第一个成员进行。
上一页
返回
9.3 枚举型
9.3.1枚举型的定义和枚举变量的说明
1.枚举型定义的一般形式 枚举型定义的一般形式为: enum枚举名{枚举值表}; 其中,enum是关键字,在枚举值表中罗列出所有可用值, 这些值也称为枚举元素。枚举值之间用逗号分隔。
下一页
返回
9.3 枚举型
2.枚举变量的说明 如同结构型和共用型变量一样,枚举变量也可用不同的方式 说明,即先定义后说明、同时定义和说明或直接说明。
9.3.2枚举变量的赋值和使用
给枚举变量赋值时,只能把枚举值赋予枚举变量,不能把元 素的数值直接赋予枚举变量。
上一页
返回
9.4 用typedef定义类型
下一页
返回
9.2 共用型
共用型定义的一般形式为: union { 共用型名 数据类型1 数据类型1 成员名1;
上一页
下一页
返回
9.2 共用型
成员名1; 数据类型n 成员名n; }; 其中union是关键字,共用型成员的数据类型可以是C语言 所允许的任何数据类型,在花括号外的分号表小共用型定义 结束。
下一页
返回
9.1 结构型
9.1.2结构型变量的定义与初始化
定义结构型变量的方法有3种,在定义的同时,可以给变量 的每个成员赋初值。 以上面定义的stu为例来加以说明。 1.先定义结构型,后定义变量 2.定义结构型的同时定义变量 3.定义无名称的结构型的同时定义变量
上一页
下一页
返回
9.1 结构型
上一页
下一页
返回
9.1 结构型
赋值是把结构型变量的首地址赋予该指针变量,不能把结构 型名赋予该指针变量。 结构型名和结构型变量是两个不同的概念,不能混淆。 2.指向结构型数组的指针变量 指针变量可以指向一个结构型数组,这时结构型指针变量的 值是这个结构型数组的首地址。结构型指针变量也可指向结 构型数组的一个元素,这时结构型指针变量的值是该结构型 数组元素的首地址。