第九章系统安全性 第九章系统安全性 91结构体 9,2结构体型数组 93结构体型指针 94内存的动态分配 95共用体 9.6位段 97用 typedef定义类型 BACK
第九章 系 统 安 全 性 第九章 系 统 安 全 性 9.1 结构体 9.2 结构体型数组 9.3 结构体型指针 9.4 9.5 共用体 9.6 位段 9.7 用typedef定义类型
第九章系统安全性 91结构体 911结构体类型 数组将若干具有共同类型特征的数据组合在了一起。然 而,在实际处理中,待处理的信息往往是由多种类型组成的, 如有关学生的数据,不仅有学习成绩,还应包括诸如学号 (长整型)、姓名(字符串类型)、性别(字符型)、出生 日期(字符串型)等。再如编写工人管理程序时,所处理对 象—工人的信息类似于学生,只是将学习成绩换成工资。就 目前所学知识,我们只能将各个项定义成互相独立的简单变 量或数组,无法反映它们之间的内在联系。应该有一种新的 类型,就像数组将多个同类型数据组合在一起一样,能将这 些具有内在联系的不同类型的数据组合在一起,C语言提供 手“梅纯”类型来完成这二任务
第九章 系 统 安 全 性 9.1 结 构 体 9.1.1 结构体类型 数组将若干具有共同类型特征的数据组合在了一起。然 而,在实际处理中,待处理的信息往往是由多种类型组成的, 如有关学生的数据,不仅有学习成绩, 还应包括诸如学号 (长整型)、姓名(字符串类型)、性别(字符型)、出生 日期(字符串型)等。 再如编写工人管理程序时,所处理对 象——工人的信息类似于学生,只是将学习成绩换成工资。就 目前所学知识,我们只能将各个项定义成互相独立的简单变 量或数组,无法反映它们之间的内在联系。应该有一种新的 类型, 就像数组将多个同类型数据组合在一起一样, 能将这 些具有内在联系的不同类型的数据组合在一起,C语言提供 了“结构体”类型来完成这一任务
第九章系统安全性 912结构体类型的定义 结构体类型的定义形式如下 struct结构体类型名 成员列表} 例如: struct student flong int num; char name [20] char sex, Int age
第九章 系 统 安 全 性 9.1.2 结构体类型的定义 结构体类型的定义形式如下: struct 结构体类型名 {成员列表}; 例如: struct student {long int num; char name[20]; char sex; int age; };
第九章系统安全性 说明 (1)关键字 struct和结构体类型名 student组合成一种类 型标识符,其地位如同通常的int,char等,其用途是用 来定义该结构体型变量,定义了变量之后,该变量就可以 像其它变量一样的使用了,类型名便不应再在程序中出现 (求长度运算除外,一般程序只对变量操作)。类型名 的起名规则遵从标识符
第九章 系 统 安 全 性 说明: (1) 关键字struct和结构体类型名student组合成一种类 型标识符, 其地位如同通常的int ,char 等,其用途是用 来定义该结构体型变量,定义了变量之后,该变量就可以 像其它变量一样的使用了,类型名便不应再在程序中出现 (求长度运算除外,一般程序只对变量操作)。 类型名 的起名规则遵从标识符
第九章系统安全性 (2)成员列表为本结构体类型所包含的若干个成员的列表, 必需用{}括起来,并以分号结束。每个成员的形式为类 型标识符成员名; 如例中的 long int num char name[20];等 成员(如num)又可称为成员变量,也是一种标识符, 成员的类型可以是除该结构体类型自身外,C语言允许的任何 数据类型,结构体类型 struct student中学号num是长整型姓名 name是字符数组、性别sex是字符型等等。成员之一还可以是 其它结构体类型,此时称为结构体类型嵌套,如用生日代替 上例中的年龄。可以定义结构体类型如下:
第九章 系 统 安 全 性 (2) 成员列表为本结构体类型所包含的若干个成员的列表, 必需用{ }括起来,并以分号结束。每个成员的形式为 类 型标识符 成员名; 如例中的 long int num; char name[20]; 等 成员(如num)又可称为成员变量,也是一种标识符, 成员的类型可以是除该结构体类型自身外,C语言允许的任何 数据类型,结构体类型struct student中学号num是长整型 姓名 name是字符数组、性别sex是字符型等等。成员之一还可以是 其它结构体类型,此时称为结构体类型嵌套,如用生日代替 上例中的年龄。可以定义结构体类型如下: