内容正文:
第10章自定义数据类型
第10章自定义数据类型
定义结构型
结构型指针变量
链表
联合型
枚举型
为类型定义别名
用户自定义数据类型
C语言中基本的数据类型有整型、浮点型和字符型。程序员可以通过对已有数据类型的限定、组合来定义新的数据类型,即用户自定义数据类型。
自定义的数据类型有结构型(structure)、联合型(union)和枚举型(enumeration)。
数据类型主要用于定义变量,申请“自定义”编码规则的存储单元,如int i;。自定义数据类型用于创建“自定义”存储单元的“编码规则”,定义关联“自定义”存储单元的变量。
C语言中基本的数据类型有整型、浮点型和字符型。程序员可以通过对已有数据类型的限定、组合来定义新的数据类型,即用户自定义数据类型。
自定义的数据类型有结构型(structure)、联合型(union)和枚举型(enumeration)。
数据类型主要用于定义变量,申请限定编码规则的存储单元,如int i;。自定义数据类型用于创建“自定义”存储单元的“编码规则”,定义关联“自定义”存储单元的变量。
3
10.1 结构型
解决实际问题时,常需使用多个数据描述同一个对象。如在学生成绩管理系统中,一个学生的信息通常包括学号、姓名、数学成绩、英语成绩等多个数据。程序中可以定义一个整型变量存储学号、一个字符型数组变量存储姓名,两个浮点型变量存储数学成绩和英语成绩。int no; char name[10];
float fm, fe。
但处理数据时,怎样组织与某个学生关联的多个变量是个问题。
能不能一个学生对应一个变量,这个变量中可以找到这个学生的所有数据?
解决实际问题时,常需使用多个数据描述同一个对象。如在学生成绩管理系统中,一个学生的信息通常包括学号、姓名、数学成绩、英语成绩等多个数据。
程序中可以定义一个整型变量存储学号、一个字符型数组变量存储姓名,两个浮点型变量存储数学成绩和英语成绩。
int no; char name[10];
float fm, fe。
但处理数据时,怎样组织与某个学生关联的多个变量是个问题。
能不能一个学生对应一个变量,这个变量中可以找到这个学生的所有数据?
4
结构型
使用结构型变量可以把与一个学生有关的变量no、name、fm和fe组合成一个整体。这个结构型变量是一个“大” 变量,其存储单元由一个int型存储单元no,一个长度为10字符型数组name,两个float型存储单元fm和fe组成。
先定义这样一个结构型,再用这个结构型定义多个变量对应多个学生。
结构型是用户自定义数据类型,程序员先给出“自定义”的存储单元由哪些已知类型的存储单元组成,即先定义结构型,然后,再用这个结构型申请“自定义”型的变量。
使用结构型变量可以把与一个学生有关的变量no、name、fm和fe聚合成一个整体。这个结构型变量是一个“大” 变量,
其存储单元由一个int型存储单元no,一个长度为10字符型数组name,两个float型存储单元fm和fe组成。
先定义这样一个结构型,再用这个结构型定义多个变量对应多个学生。
结构型是用户自定义数据类型,程序员先给出“自定义”的存储单元由哪些已知类型的存储单元组成,
即先定义结构型,然后,再用这个结构型申请“自定义”型的变量。
5
10.1.1 结构型的定义
struct 结构型名
{
类型 变量名;
……
类型 变量名;
};
结构型名是标识符,语句定义的结构型名为struct 结构型名。
结构型中的变量名又称为结构型的内部成员名。
定义结构型的形式
struct 结构型名
{
类型 变量名;
……
类型 变量名;
};
结构型名是标识符,语句定义的结构型名为struct 结构型名。
结构型中的变量名又称为结构型的内部成员名。
6
结构型
结构型变量
这条语句定义了一个结构型struct student,可用于定义变量。
语句struct student stu1, stu2;定义了两个struct student型的变量stu1和stu2
这条语句定义了一个结构型struct student,可用于定义变量。
语句struct student stu1, stu2;定义了两个struct student型的变量stu1和stu2
结构型变量stu1由一个int型成员变量no,
一个长度为10的一维字符型成员数组
name和两个单精度成员变量fm和fe组成。
变量的内存状态如图所示。
定义一个结构型变量实际上定义了一个int型变量,一个长度为10字符型数组,两个float型变量。
成员变量通常为普通的变量。
7
结构型
结构型变量
结构型变量stu1由一个int型成员变量no,一个长度为10的一维字符型成员数组na