1、第 10章 构造数据类型及其应用 1第 10章 构造数据类型及其应用 n 10.1 结构体数据类型 n 10.2 结构体类型变量 n 10.3 结构体数组 n 10.4 结构体指针n 10.5 结构体变量与函数 n 10.6 内存的动态存储分配技术 n 10.7 结构体应用实例 n 10.8 共用体 n 10.9 枚举 n 10.10 自定义类型 n 10.11 小结 210.1 结构体数据类型 n 10.1.1 什么是结构体n 10.1.2 如何定义结构体 310.1.1 什么是结构体n “结构体 ”是一种构造类型,它由若干 “成员 ”(或称为域)组成。 每一个成员可以是一个基本数据类型或者
2、又是一个构造类型。n 不同的结构体类型可根据需要,由不同的成员组成。但对于某个具体的结构体类型,其成员的数量必须是固定的,这和数组是相同的。但该结构体中各个成员的类型可以不同,这是结构体和数组的区别。 410.1.2 如何定义结构体n 结构体既是一种 “构造 ”而成的数据类型,那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义函数一样。定义一个结构体类型的一般形式为:struct 结构体类型名类型名 1 结构体成员名 1;类型名 2 结构体成员名 2;类型名 n 结构体成员名 n;510.2 结构体类型变量 n 10.2.1 如何定义结构体变量n 10.2.2 如
3、何引用结构体变量n 10.2.3 如何初始化结构体变量610.2.1 如何定义结构体变量n 定义结构变量有 3种方法:先定义结构体再定义结构体变量;在定义结构体类型的同时定义结构体变量;直接定义结构体变量。下面以定义员工信息的结构体变量为例进行说明。n ( 1)先定义结构,再说明结构变量struct 结构体类型名 结构体变量名表列 ; n ( 2)在定义结构类型的同时说明结构变量struct 结构体类型名结构体变量名表列 ;n ( 3)直接说明结构变量struct 结构体变量名表列 ; 710.2.2 如何引用结构体变量n C 规定引用结构体成员有两种方式:用结构体成员运算符方式和指针方式。指
4、针方式在以后的章节中介绍,这里主要介绍结构体成员运算符方式。n 结构体成员运算符引用结构体成员的形式为:. 【 例 10-1】 本实例演示了结构体变量的输入和输出。 810.2.3 如何初始化结构体变量n 由于结构体类型变量中包含各类不同数据类型的成员,所以结构体类型变量的初始化就略显复杂。n 结构体变量初始化的一般形式如下:struct 结构体名 结构体变量名 =各成员初始数据 ; 【 例 10-2】 本实例演示了外部存储类型的结构体变量初始化的实现。 【 例 10-3】 本实例演示了静态存储类型的结构体变量初始化的实现。 【 例 10-4】 本实例演示了将一个结构体变量直接赋值给另一个结构体变量的实现。 910.3 结构体数组n 10.3.1 如何定义结构体数组n 10.3.2 如何初始化结构体数组n 10.3.3 如何引用结构体数组 10