【struct】结构体
类型定义:由一系列具有相同数据类型和不同数据类型的数据组成的数据集合。
结构体的指针:struct worker Man;struct worker *workerMan=&Man;结构体类型指针指向结构体的起始位置。
访问成员:结构体变量名.成员名;结构体变量指针->成员名;(*结构体变量指针).成员名
结构体数组:struct worker workers[20];workers[0]={"hanmeimei",15,80};workers[0].age;
结构体指针类型参数:实参是结构体变量本身或者结构体指针变量,形参是相同类型的结构体指针类型变量,返回值可以是基本数据类型也可以是结构体类型。C++的结构体中可以定义函数。
类型定义格式: union 共用体名 {char name[20];int age;float salary};
类型变量定义: 直接定义,间接定义
【区别于结构体】:对内存空间的占用方式不同。结构体中每个成员都有独立的空间,结构体的内存空间大小等于成员内存大小之和,共用体中成员共用同一地址开
始的内存空间,总长度取决于单个成员的最大长度,在某一瞬间只能存放每一个成员的数据。既瞬间只有一个成员有效,其他成员无效。
【访问成员】
联合体变量名.成员名;联合体指针变量->成员名;
【warning】:在联合体变量中,当新成员被赋值后,原有成员内存中重复的地址段被覆盖,也是冲掉。联合体类型可以和结构体类型相互嵌套定义。
联合体变量不能作为函数参数:编译时要语法检查确定参数类型,但是联合体变量的地址与其各成员的地址相同吗,不能够确定参数类型。但是指向联合体变量的 联合体类型型指针变量可以作为函数采纳数,函数也可以返回联合体类型指针变量。
作用 :联合体经常用于数据类型转换,这是因为可以用两种或者多种方法访问包含在联合厅内的成员数据。因此在编写软件系统时,要处理不同类型的数据,或者 要求以不同字节为单位(8位或者16位)参加运算,常常用联合体的方式。
定义格式:enum 枚举名称 {枚举元素1[=1],枚举元素2[=2]};个元素之间用逗号隔开,最后一个元素后边不用逗号。
【warning】: 每个元素都是一个整数值。定义时若无赋值,编译器安定义顺序赋值为0,1,2,3...若其前边又被赋值的则以其左边的元素的值为基准开始复制;枚举 被视为常量,在枚举类型定义之外,均不能能对其赋值。在定义中各枚举元素不能重名,程序中其他标志符也不能与枚举元素重名。
enum m_enum
{
m_a, //0
m_b, //1
m_c = 10, //10
m_d //在前一个的基础上+1 = 11
typedef 已有数据类型 新的数据类型名
类型定义:由一系列具有相同数据类型和不同数据类型的数据组成的数据集合。
类型定义格式:
struct worker
{
char name[10];
int age;
float salary;
struct worker *next;
};
【warning】:结构体分配其成员变量的内存之和,其中每个成员按照被说明的顺序分配存储空间。
【warning】:结构体指针变量+1后的地址取决于此结构体占用内存大小
结构体的指针:struct worker Man;struct worker *workerMan=&Man;结构体类型指针指向结构体的起始位置。
访问成员:结构体变量名.成员名;结构体变量指针->成员名;(*结构体变量指针).成员名
结构体数组:struct worker workers[20];workers[0]={"hanmeimei",15,80};workers[0].age;
结构体指针类型参数:实参是结构体变量本身或者结构体指针变量,形参是相同类型的结构体指针类型变量,返回值可以是基本数据类型也可以是结构体类型。C++的结构体中可以定义函数。
【union】联合体
类型定义:由几种不同类型的变量 存放到同一地址 的开始的 一段内存空间 里。又叫共用体。类型定义格式: union 共用体名 {char name[20];int age;float salary};
类型变量定义: 直接定义,间接定义
【区别于结构体】:对内存空间的占用方式不同。结构体中每个成员都有独立的空间,结构体的内存空间大小等于成员内存大小之和,共用体中成员共用同一地址开
始的内存空间,总长度取决于单个成员的最大长度,在某一瞬间只能存放每一个成员的数据。既瞬间只有一个成员有效,其他成员无效。
【访问成员】
联合体变量名.成员名;联合体指针变量->成员名;
【warning】:在联合体变量中,当新成员被赋值后,原有成员内存中重复的地址段被覆盖,也是冲掉。联合体类型可以和结构体类型相互嵌套定义。
联合体变量不能作为函数参数:编译时要语法检查确定参数类型,但是联合体变量的地址与其各成员的地址相同吗,不能够确定参数类型。但是指向联合体变量的 联合体类型型指针变量可以作为函数采纳数,函数也可以返回联合体类型指针变量。
作用 :联合体经常用于数据类型转换,这是因为可以用两种或者多种方法访问包含在联合厅内的成员数据。因此在编写软件系统时,要处理不同类型的数据,或者 要求以不同字节为单位(8位或者16位)参加运算,常常用联合体的方式。
【enum】枚举类型
定义:一个有名字的整形常量的集合。默认初始为 0定义格式:enum 枚举名称 {枚举元素1[=1],枚举元素2[=2]};个元素之间用逗号隔开,最后一个元素后边不用逗号。
【warning】: 每个元素都是一个整数值。定义时若无赋值,编译器安定义顺序赋值为0,1,2,3...若其前边又被赋值的则以其左边的元素的值为基准开始复制;枚举 被视为常量,在枚举类型定义之外,均不能能对其赋值。在定义中各枚举元素不能重名,程序中其他标志符也不能与枚举元素重名。
enum m_enum
{
m_a, //0
m_b, //1
m_c = 10, //10
m_d //在前一个的基础上+1 = 11
};
typedef 已有数据类型 新的数据类型名
typedef int array[10];array以后偶表示10个元素的整形数组类型