第9章结构体、共用体及枚举型 第九章结构体、共用体及枚举型 9.1结构体 9.2指向结构体类型数据的指针 9.3共用体及枚举型 Back
第9章 结构体、共用体及枚举型 第九章 结构体、共用体及枚举型 9.1 结构体 9.2 指向结构体类型数据的指针 9.3 共用体及枚举型
第9章结构体、共用体及枚举型 9.1结构体 9.1.1结构体类型的定义 结构体类型实际上就是使用不同类型的数据描述数据 对象时的结构模式。例如,学生的综合信息可使用下面 的数据结构模式进行描述,图9.1描述了学生“xiao ming的信息。 学号用整型数据描述 int num 姓名用字符串数据描述即: char name[20]; 性别用字符数据描述 char sex: 成绩用实型数据描述即: float score; 住址用字符串数据描述即: char address[30] B
第9章 结构体、共用体及枚举型 9.1 结构体 9.1.1 结构体类型的定义 结构体类型实际上就是使用不同类型的数据描述数据 对象时的结构模式。例如,学生的综合信息可使用下面 的数据结构模式进行描述,图9.1描述了学生 “xiao ming”的信息。 学号 用整型数据描述 即:int num; 姓名 用字符串数据描述 即:char name[20]; 性别 用字符数据描述 即:char sex; 成绩 用实型数据描述 即:float score; 住址 用字符串数据描述 即:char address[30];
第9章结构体、共用体及枚举型 使用结构体类型与使用标准数据类型的区别在于: C语言为用户提供了标准数据类型说明符(如int,char, float等)供用户使用;但是却没有为用户提供通用的 结构体类型说明符,因此用户需要根据编程要求自己 说明所需要的结构体类型
第9章 结构体、共用体及枚举型 使用结构体类型与使用标准数据类型的区别在于: C语言为用户提供了标准数据类型说明符(如int,char, float等)供用户使用;但是却没有为用户提供通用的 结构体类型说明符,因此用户需要根据编程要求自己 说明所需要的结构体类型
第9章结构体、共用体及枚举型 下面说明学生综合信息结构体类型 struct student struct student int num char name [20] char sex float score: char address[30]
第9章 结构体、共用体及枚举型 下面说明学生综合信息结构体类型struct student: struct student { int num; char name[20]; char sex; float score; char address[30]; };
第9章结构体、共用体及枚举型 上面定义了一个结构体类型, struct student( struct是 关键字,不能省略),表示这是一个“结构体类型”。它包括 num,name,sex,age, score, address等不同类型的数据项 应当注意: struct student是程序设计者自己定义的类型名。 它和系统已定义了的标准类型(如int,char, float, double 等)一样可以用来作为定义变量的类型
第9章 结构体、共用体及枚举型 上面定义了一个结构体类型,struct student(struct是 关键字,不能省略),表示这是一个“结构体类型”。它包括 num,name,sex,age,score,address等不同类型的数据项。 应当注意:struct student是程序设计者自己定义的类型名。 它和系统已定义了的标准类型(如int,char,float,double 等)一样可以用来作为定义变量的类型
第9章结构体、共用体及枚举型 定义一个结构体类型的一般形式为: struct结构体类型名/米 struct是结构类型关键字 数据类型数据项1 数据类型数据项2 数据类型数据项n; /*此行分号不能少!*
第9章 结构体、共用体及枚举型 定义一个结构体类型的一般形式为: struct 结构体类型名 /* struct是结构类型关键字 */ { 数据类型 数据项1; 数据类型 数据项2; …… …… 数据类型 数据项n; }; /* 此行分号不能少!*/
第9章结构体、共用体及枚举型 花括号内是该结构体中的各个成员(或称分量),由 它们组成一个结构体。例如,上例中的num,name, sex等都是成员。对各成员都应进行类型说明,即 类型标识符成员名 也可以把花括号内容称为“域表”。每一个成员称 为结构体中的一个域。成员名定名规则与变量名同。 成员变量的个数不限。所以用户可以根据自己的需要, 说明各种不同的结构体类型。然后,用户就可像使用 标准类型那样,用结构体类型说明结构体类型变量
第9章 结构体、共用体及枚举型 花括号内是该结构体中的各个成员(或称分量),由 它们组成一个结构体。例如,上例中的num,name, sex等都是成员。对各成员都应进行类型说明,即 类型标识符 成员名 也可以把花括号内容称为“域表”。每一个成员称 为结构体中的一个域。成员名定名规则与变量名同。 成员变量的个数不限。所以用户可以根据自己的需要, 说明各种不同的结构体类型。然后,用户就可像使用 标准类型那样,用结构体类型说明结构体类型变量
第9章结构体、共用体及枚举型 9.1.2结构体变量的定义和引用 结构体变量的定义 要定义一个结构体类型的变量,可以采取以下三种方法。 (1)先定义结构体类型在定义变量名 如上面已定义了一个结构体类型 struct student,可 以用它来定义变量。如 struct student student1, student2 定义 student1和 student2为 struct student类型变量, 即它们具有 struct strudent类型的结构
第9章 结构体、共用体及枚举型 9.1.2 结构体变量的定义和引用 一、结构体变量的定义 要定义一个结构体类型的变量,可以采取以下三种方法。 (1) 先定义结构体类型在定义变量名 如上面已定义了一个结构体类型struct student,可 以用它来定义变量。如: struct student student1,student2; 定义student1和student2为struct student类型变量, 即它们具有struct strudent类型的结构
第9章结构体、共用体及枚举型 (2)在定义类型的同时定义变量 例如: struct student int num char name [20] char sex float score: char address[301 )student1, student2
第9章 结构体、共用体及枚举型 (2) 在定义类型的同时定义变量 例如: struct student { int num; char name[20]; char sex; float score; char address[30]; }student1,student2;
第9章结构体、共用体及枚举型 (3)直接定义结构类型变量 其一般形式为: struct 成员表列; }变量名表列; 即不出现结构体名
第9章 结构体、共用体及枚举型 (3) 直接定义结构类型变量 其一般形式为: struct { 成员表列; }变量名表列; 即不出现结构体名