第12章 结构体与共用体 第一节 结构体类型概述 一、结构体的概念及其定义: 1、 看一个例子: 每一个学生的可能有以下数据(属性): 学号、姓名、性别、年龄、成绩、家庭地址等。 所有这些数据都是和某一学生相联系。 (I)假如将其分别定为num,name,sex,age,score,addr这些简单 变量,则它们之间相互独立,难以反映其内在的联系。 (2)需要将不同类型的数据组合成一个整体,以便于统一引用。 也就是说,希望将其合并成一个组合项,在这个组合项中包含若 干个类型不同(当然也可以相同)的数据项。 跳转到第一页
跳转到第一页 第12章 结构体与共用体 第一节 结构体类型概述 一、结构体的概念及其定义: 1、 看一个例子: 每一个学生的可能有以下数据(属性): 学号、姓名、性别、年龄、成绩、家庭地址等。 所有这些数据都是和某一学生相联系 。 (1)假如将其分别定为num,name,sex,age,score,addr这些简单 变量,则它们之间相互独立,难以反映其内在的联系。 (2)需要将不同类型的数据组合成一个整体,以便于统一引用。 也就是说,希望将其合并成一个组合项,在这个组合项中包含若 干个类型不同(当然也可以相同)的数据项
2、结构体(structure.) C语言提供了这样一种数据结构,它相当于其它高级 语言中的“记录” num name sex age c score addr 10010 LiFun M 18 87.5 Beijing struct student int num; char name [20]; char sex; int age; float 。 score; char addr[30]; } 跳转到第一页
跳转到第一页 2、结构体(structure) C语言提供了这样一种数据结构,它相当于其它高级 语言中的“记录” 。 num name sex age c_score addr 10010 LiFun M 18 87.5 Beijing struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; };
struct student表示这是一个“结构体类型”, 它包括num,name,age,score,addr等不同类型的数据项 3、结构体类型定义的语法格式: struct结构体名 {类型标识符 成员名: } 花括号内是该结构体中的各个成员(或称分量),由 它们组成一个结构体。对各成员都应进行类型说明,即 结构体类型特点及注意事项: 定义一个结构体类型,系统并未为其分配内存单元。 跳转到第一页
跳转到第一页 struct student表示这是一个“结构体类型” , 它包括num,name,age,score,addr等不同类型的数据项 3、结构体类型定义的语法格式: struct 结构体名 {类型标识符 成员名; . }; 花括号内是该结构体中的各个成员(或称分量),由 它们组成一个结构体。对各成员都应进行类型说明,即 结构体类型特点及注意事项: 定义一个结构体类型,系统并未为其分配内存单元
第二节 结构体类型变量定义和引用 一、定义结构体类型变量的方法: 1、在定义结构体类型之后,把变量定义为该类型: struct student student1,str+ 2、在定义结构体类型的同时定义该: struct time +name,20个字节 int hour; int minute; →age,2个字节 →gender,2个字节 int second; →class,2个字节 →grade,2个字节 last,now,future; 跳转到第一页
跳转到第一页 第二节 结构体类型变量定义和引用 一、定义结构体类型变量的方法: 1、在定义结构体类型之后,把变量定义为该类型: struct student student1,student2; 2、在定义结构体类型的同时定义该类型变量: struct time { int hour; int minute; int second; }last,now,future;
struct int hour; int minute; int second; }last,now,future; 注意:(1)结构体变量具有结构体类型的特征。 (2)结构体可以嵌套。 num name birthday year month day 跳转到第一页
跳转到第一页 struct { int hour; int minute; int second; }last,now,future; 注意:(1)结构体变量具有结构体类型的特征。 (2)结构体可以嵌套。 num name birthday year month day