第八章结构体与共用体 枚举类型 2004年3月 河北建筑工程学院
第八章 结构体与共用体 枚举类型 河北建筑工程学院 2004年3月
迄今为止,我们已详细介绍了基本数据类型如整 型、实型、字符型等,也介绍了一种构造类型的数 据一数组,数组中的各元素是属于同一个类型的。 但在处理实际问题时,经常会遇到复杂的数据,只 有这些数据类型是不够的,还需要将不同类型的数 据组合成一个有机的整体,以便于引用。为了能把 这些有一定逻辑联系的数据组成一个整体,C++语 言提供了一种结构体数据类型本章主要介绍由不同 类型数据组成的构造类型的数据,包括结构体类型 共用体类型和枚举类
迄今为止,我们已详细介绍了基本数据类型如整 型、实型、字符型等,也介绍了一种构造类型的数 据—数组,数组中的各元素是属于同一个类型的。 但在处理实际问题时,经常会遇到复杂的数据,只 有这些数据类型是不够的,还需要将不同类型的数 据组合成一个有机的整体,以便于引用。为了能把 这些有一定逻辑联系的数据组成一个整体,C++语 言提供了一种结构体数据类型本章主要介绍由不同 类型数据组成的构造类型的数据,包括结构体类型 共用体类型和枚举类
8.1结构体类型 用途:把不同类型的数据组合成一个萋体自定 义数据类型 结构体是一种构造数据类型 例如:在指迷学生的基本情况时,一般要用到 学生的掌号、姓名、性别、年龄、成缋、家庭 住址等项。这些项都与某一学生相联系。见囝 8. 学号姓名性别年龄成绩地址 10000彤男 2190北京 图81学生的基本情况
8.1 结构体类型 用途:把不同类型的数据组合成一个整体自定 义数据类型 结构体是一种构造数据类型 例如:在描述学生的基本情况时,一般要用到 学生的学号、姓名、性别、年龄、成绩、家庭 住址等项,这些项都与某一学生相联系,见图 8.1。 100001 王彤 男 21 90 北京 学号 姓名 性别 年龄 成绩 地址 图8.1 学生的基本情况
可以看到学号(num)、姓名(mame、性 别(sex)、年龄age)、成绩( score)、家庭住址 adr)共同描述名为“王彤”的学生,如果将 num、name、sex、age、 score、addr分别定 义为互相独立的简单变量,则难以反映它们之间 的内在联系。应当把它们组织成一个组合项,在 个组合项中包含若干个类型相同或不同的数据 项。C十+语言允许用户指定这样一种数据结构, 称为结构体( structure)它相当于其它高级语 言中的“记录” 使用结构体类型之前,必须先对结构体的组 成进行描述这就是结构体类型的定义。结构体类 型的定义描述了组成结构体的成员以及每个成员 的数据类型
可以看到学号(num)、姓名(name)、性 别(sex)、年龄(age)、成绩(score)、家庭住址 (addr)共同描述名为“王彤” 的学生,如果将 num、name、sex、age、score、addr分别定 义为互相独立的简单变量,则难以反映它们之间 的内在联系。应当把它们组织成一个组合项,在 一个组合项中包含若干个类型相同或不同的数据 项。C++语言允许用户指定这样一种数据结构, 称为结构体(structure)它相当于其它高级语 言中的“记录” 使用结构体类型之前,必须先对结构体的组 成进行描述这就是结构体类型的定义。结构体类 型的定义描述了组成结构体的成员以及每个成员 的数据类型
结构体类型定义 合法标识符 可省:元名结构体 struct[结构体名 类型标识符成员名; 类型标识符成员名; 成员类型可以是 struct是关键字 基本型或构造型 不能省略
结构体类型定义 struct [结构体名] { 类型标识符 成员名; 类型标识符 成员名; ……………. }; 成员类型可以是 struct是关键字, 基本型或构造型 不能省略 合法标识符 可省:无名结构体