第第88章章 结构体、共用体与枚举结构体、共用体与枚举
• 8.0 结构体引例
• 8.1 定义结构体的一般形式
• 8.2 结构体类型变量的定义
• 8.3 结构体变量成员的引用方法
• 8.4 结构体变量的初始化
• 8.5 结构体数组的定义
• 8.6 结构体指针变量的定义和使用
• 8.7 动态存储分配
• 8.8 链表
• 8.9 共用体类型
• 8.10 枚举类型
• 8.11 类型定义符typedef
• 8.12 复习指南
1
8.08.0 结构体引例结构体引例
• C语言的结构体类型相当于其它高级语言的
“记录”。结构体类型的变量可以拥有不同数
据类型的成员,是不同数据类型成员的集合。
结构体在C语言中相当重要,与指针同属C语言
的精华。
• 【引例】设计一个学生的情况登记表,要求有
学号(number )、姓名(name )、性别
(sex )、年龄(age )、家庭地址(address )
和三门课成绩(achie )。三门课是语文
(chinese )、数学(math )和英语(english )。
如图8-1所示。
2
3
8.18.1 定义结构体的一般形式定义结构体的一般形式
struct 结构体名
{ 类型标识符成员1;
类型标识符成员2 ;
…
类型标识符成员n ;
} ;
– 各个成员可以是基本类型,也可以是结构体类型,即结构体
类型定义允许嵌套。
– 有的结构体可能包含很多成员,有些成员本身也可能很复杂
4
• 例如,图8-1中表示两个结构体,一个是student结
构体,另一个是score结构体。用C语言来表示这
种结构体的定义如下:
struct student
struct score {
{ int number;
float chinese; char name[9];
float math; char sex;
float english; int age;
}; char address[30] ;
struct score achie; /*achie是struct score类型*/
};
5
8.28.2 结构体类型变量的定义结构体类型变量的定义
• C语言的结构体定义就像C语言的保留字
int一样,需要指定结构体类型的变量,
才能对结构体中各个成员进行操作。
• 结构体类型变量的定义形式:
– (1)先定义结构体类型,再定义结构体类型变量。
– 例如:struct student Na, Nb, Nc; /*结构体的定义见【引例】
*/
– (2 )定义结构体类型同时定义结构体类型变量。