1、第第 9章章 用户自己建立数据类型用户自己建立数据类型9.1 定义和使用结构体变量9.2 使用结构体数组9.3 结构体指针9.4 用指针处理链表9.5 共用体类型9.6 使用枚举类型9.7 用 typedef声明新类型名9.1 定义和使用结构体变量定义和使用结构体变量9.1.1 自己建立结构体类型9.1.2 定义结构体类型变量9.1.3 结构体变量的初始化和引用9.1.1 自己建立结构体类型自己建立结构体类型用户自己建立由不同类型数据组成的 组合型 的数据结构,它称为 结构体例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项,是属于同一个学生的 ,因此 组成一个组合数据,如 stude
2、nt_1的变量,反映它们之间的内在联系9.1.1 自己建立结构体类型自己建立结构体类型struct Student int num; char name20; char sex; int age; float score; char addr30; ;u由程序设计者指定了一个结构体类型struct Studentu它包括num,name,sex,age,score,addr等不同类型的成员9.1.1 自己建立结构体类型自己建立结构体类型声明一个结构体类型的一般形式为:struct 结构体名 成员表列 ; 类型名 成员名 ;9.1.1 自己建立结构体类型自己建立结构体类型说明:结构体类型的名字是
3、由一个关键字 struct和结构体名组合而成的。结构体名由用户指定,又称 “结构体标记 ”。花括号内是该结构体所包含的子项,称为结构体成员。 “成员表列 ” 也称为 “域表 ” ,每个成员是结构体的一个域,成员命名规则与变量名相同。9.1.1 自己建立结构体类型自己建立结构体类型说明:(1)结构体类型并非只有一种,而是可以设计出许多种结构体类型,例如struct Teacherstruct Workerstruct Date 等结构体类型u各自包含不同的成员9.1.1 自己建立结构体类型自己建立结构体类型说明:(2) 成员可以属于另一个结构体类型。struct Date int month;
4、int day; int year; ;struct Stu int num;char name20;char sex;int age;struct Date birthday; char addr30; ;9.1.1 自己建立结构体类型自己建立结构体类型说明:(2) 成员可以属于另一个结构体类型。 num name sex age birthday addrmonth day year9.1.2 定义结构体类型变量定义结构体类型变量前面只是建立了一个结构体类型,它相当于一个模型,并没有定义变量,其中并无具体数据,系统对之也不分配存储单元。相当于设计好了图纸,但并未建成具体的房屋。为了能在程序中使用结构体类型的数据,应当 定义结构体类型的变量 ,并在其中存放具体的数据。