12.第十二章 自定义数据类型.txt

carybran 10 0 TXT 2021-05-11 07:05:47

第十二章 自定义数据类型 12.1 结构体 结构体(structure)又叫结构,是一种构造类型,由若干成员构成,成员可以是一个基本数据类型或一个构造类型。 12.1.1 结构体声明 声明结构体的形式: struct 结构名 { 成员表列; }; 成员表列由若干个成员组成,每个成员必须做类型说明,形式为: 类型说明符 成员名; 例1:声明学生结构: struct student { int iNum; char cArrName[20]; char cSex; float fScore; }; 注意不要忘记}后的分号(;)。 成员名可与程序中其他变量同名,互不干扰。 结构体声明并不分配空间,结构体声明是在说明一种数据类型,不是变量定义。例1中结构体student与int、float一样都是数据类型。 声明结构体后可定义结构体变量,这时分配空间。 12.1.2 结构体变量定义 声明结构体后可以定义结构体变量。 定义方法: a.先声明结构体,再定义结构体变量 struct student { int iNum; char cArrName[20]; char cSex; float fScore; }; struct student stu1,stu2; 可以用宏定义使用一个符号常量表示一个结构体类型。 b.在声明结构体同时定义结构体变量 struct student { int iNum; char cArrName[20]; char cSex; float fScore; }stu1,stu2; c.直接定义结构体变量 struct { int iNum; char cArrName[20]; char cSex; float fScore; }stu1,stu2; 第三种与第二种区别在于省去了结构体类型名,而直接给出结构体变量。这种方法结构体只能用一次,即使再声明成员完全相同的结构体类型,也和此次定义的结构体类型属于不同的结构体类型。 结构体变量在内存空间中是连续存储的,结构体类型大小为sizeof(struct student),为各成员大小之和,各编译系统为内存管理方便可能分配大一些的内存空间来存储结构体,保证字节对齐。在Dev中上述结构体类型student为32字节。 结构体成员可以又是一个结构体,即构成嵌套的结构体。如: struct date { int year; int month; int day; }; struct student { int iNum; char cArrName[20]; char cSex; float fScore; struct date birthday; }; 12.1.3 结构体变量引用 1.结构变量初始化

用户评论
请输入评论内容
评分:
暂无评论