尊7章 结村共同体 茶类判
2021/2/24 1 第7章 结构体、共同体 和枚举类型
结构体类型的说明 在实际问题中,一组数据往往具有不同的数据类型 例如,在学生登记表中,姓名应为字符型;学号可 为整型或字符型;年龄应为整型;性别应为字符型; 成绩可为整型或实型。显然不能用一个数组来存放这 组数据。因为数组中各元素的类型和长度都必须 致,以便于编译系统处理。为了解决这个问题,C++ 中给出了另一种构造数据类型“结构”。它相当于 其它高级语言中的记录。 “结构”是一种构造类型,它是由若干“成员”组 成的。每一个成员可以是一个基本数据类型或者又是 个构造类型。结构既是一种“构造”而成的数据类 型,那么在使用之前必须先定义它,也就是构造它 如同在说明和调用函数之前要先定义函数一样
2021/2/24 2 结构体类型的说明 在实际问题中,一组数据往往具有不同的数据类型 。例如, 在学生登记表中,姓名应为字符型;学号可 为整型或字符型; 年龄应为整型;性别应为字符型; 成绩可为整型或实型。 显然不能用一个数组来存放这 一组数据。 因为数组中各元素的类型和长度都必须一 致,以便于编译系统处理。为了解决这个问题,C++ 中给出了另一种构造数据类型——“结构”。 它相当于 其它高级语言中的记录。 “结构”是一种构造类型,它是由若干“成员”组 成的。 每一个成员可以是一个基本数据类型或者又是 一个构造类型。 结构既是一种“构造”而成的数据类 型, 那么在使用之前必须先定义它,也就是构造它。 如同在说明和调用函数之前要先定义函数一样
结构体类型的说明 般格式: struct结构类型名/ /struc是结构类型关键字 {数据类型数据项1; 数据类型数据项2; 数据类型数据项n 此行分号不能少! 如: struct stu ∥定义学生情况结构体 int num. 定义了结构的组 char namel20;成,未分配存储 char sex; float score: 单 2021/224
2021/2/24 3 结构体类型的说明 一般格式: struct 结构类型名 //struct是结构类型关键字 {数据类型 数据项1; 数据类型 数据项2; …… …… 数据类型 数据项n; }; //此行分号不能少! 如:struct stu{ //定义学生情况结构体 int num; //学号 char name[20]; //姓名 char sex; //性别 float score; //成绩 }; 定义了结构的组 成,未分配存储 单元
结构定义之后,即可进行变量说明。凡说明为 结构stu的变量都由上述4个成员组成。由此可见 结构是一种复杂的数据类型,是数目固定、类 型不同的若干有序变量的集合。 例1:定义一个反映学生基本情况的结构类型,用以存 储学生的相关信息。 功能:定义一个反映学生基本情况的结构类型 struct date/期结构类型:由年、月、日三项组成 int vear int month int day; 2021/224
2021/2/24 4 结构定义之后,即可进行变量说明。 凡说明为 结构stu的变量都由上述4个成员组成。由此可见 , 结构是一种复杂的数据类型,是数目固定、类 型不同的若干有序变量的集合。 例1:定义一个反映学生基本情况的结构类型,用以存 储学生的相关信息。 //功能:定义一个反映学生基本情况的结构类型 struct date //日期结构类型:由年、月、日三项组成 {int year; int month; int day; };
struct std info ∥学生信息结构类型 tchar no; ∥学号 char name 9; ∥姓名 char sex 3 ∥性别 struct date birthday ∥l日 struct score ∥成绩结构类型由学号和三门课共4项组成 &char no 7; ∥学号 int score1 ∥成绩1 int score2 ∥)绩2 int score3 ∥成绩3 2021/224 5
2021/2/24 5 struct std_info //学生信息结构类型 {char no[7]; //学号 char name[9]; //姓名 char sex[3]; //性别 struct date birthday; //生日 }; struct score //成绩结构类型由学号和三门课共4项组成 {char no[7]; //学号 int score1; //成绩1 int score2; //成绩2 int score3; //成绩3 };