第1章结构体与共用体
第11章结构体与共用体
+1、结构体类型的定义 2、结构体变量的定义及引用 ■3、结构体数组 ■4、结构体类型的指针 5、链表的基本操作 6、共用体和枚举类型(了解)
◼ 1、结构体类型的定义 ◼ 2、结构体变量的定义及引用 ◼ 3、结构体数组 ◼ 4、结构体类型的指针 ◼ 5、链表的基本操作 ◼ 6、共用体和枚举类型(了解)
结构体类型的引入 题:为了描述一个事物的不同属性,需要用到各种不同类 的数据,这些数据彼此相关,形成一个有机的整体。例如: 个教师的基本信息由姓名、性别、年龄、职称、工资等几 项组合而成。如何描述一个教师的情况呢? ■前面我们已学习过各种基本类型的变量和数组,而且我们知 道,各个变量之间是相互独立的,无任何联系;而数组只能 用来表示一批相同类型的数据。因此,若用单个变量分别表 示教师的姓名、性别、年龄等属性,则难以反映他们之间的 内在联系;若用数组,则根本无法表示,因为姓名、性别、 年龄等不属同一种数据类型。 C语言中用“结构体”来描述由多个不同类型的数据组成的 数据集合。相当于其他高级语言中的“记录
结构体类型的引入 ◼ 问题:为了描述一个事物的不同属性,需要用到各种不同类 型的数据,这些数据彼此相关,形成一个有机的整体。例如: 一个教师的基本信息由姓名、性别、年龄、职称、工资等几 项组合而成。如何描述一个教师的情况呢? ◼ 前面我们已学习过各种基本类型的变量和数组,而且我们知 道,各个变量之间是相互独立的,无任何联系;而数组只能 用来表示一批相同类型的数据。因此,若用单个变量分别表 示教师的姓名、性别、年龄等属性,则难以反映他们之间的 内在联系;若用数组,则根本无法表示,因为姓名、性别、 年龄等不属同一种数据类型。 ◼ C语言中用“结构体”来描述由多个不同类型的数据组成的 数据集合。相当于其他高级语言中的“记录
11结构体类型的定义 与基本数据类型不同的是,结构体是又一种构造类型,是由 多个类型的数据成员组合而来的。因此该类型的具体内容应 根据需要先定义,后使用。 ■可以定义如下结构体类型来描述教师的基本情况 struct teacher /= struct是关键字 &char name 30? /4内是该类型的各成员 char sexs Int ages char position ob float salary /*语句末尾是“;* 该结构体类型名为 Istruct teacher, teacher是该结构体的标识符; 该类型包含有6个成员的数据项:name、sex、age、 position 和 salary,其中每个成员项都有自己的类型
11.1结构体类型的定义 ◼与基本数据类型不同的是,结构体是又一种构造类型,是由 多个类型的数据成员组合而来的。因此该类型的具体内容应 根据需要先定义,后使用。 ◼可以定义如下结构体类型来描述教师的基本情况: struct teacher /*struct 是关键字*/ {char name[30]; /*{}内是该类型的各成员*/ char sex; int age; char position[10]; float salary; }; /*语句末尾是“;” */ 该结构体类型名为struct teacher,teacher 是该结构体的标识符; 该类型包含有6个成员的数据项:name、 sex、 age、 position 和salary,其中每个成员项都有自己的类型
可见,定义一种新的结构体类型的一般形式是: sct结构体类型名 成员类型成员名 成员类型成员名 其中, struct是关键字,结构体类型名、结构体成员名的命 名规则同变量的命名规则一样。 特别提示: struct teacher只是一种具体的结构体类型,根据 需要,程序员可以定义多个不同内容的结构体类型。其中的 成员项是该类型的组成部分,而不是变量。 结构体类型的成员可以是基本类型的变量或数组,也可以是结 构体类型的数据。即结构体类型的嵌套定义 例如,若将教师的年龄改为出生日期,则可以将出生日期定义 为一个结构体类型,然后嵌入 struct teacher中
◼ 可见,定义一种新的结构体类型的一般形式是: struct 结构体类型名 {成员类型 成员名; …… 成员类型 成员名; }; 其中,struct 是 关键字,结构体类型名、结构体成员名的命 名规则同变量的命名规则一样。 特别提示:struct teacher只是一种具体的结构体类型,根据 需要,程序员可以定义多个不同内容的结构体类型。其中的 成员项是该类型的组成部分,而不是变量。 结构体类型的成员可以是基本类型的变量或数组,也可以是结 构体类型的数据。即结构体类型的嵌套定义。 例如,若将教师的年龄改为出生日期,则可以将出生日期定义 为一个结构体类型,然后嵌入 struct teacher中