共用体和枚举
共用体
一、共用体是什么?
-- 数据类型
二、共用体的意义?
1、多个不用的数据类型的数据占用同一个内存空间。 -- 节省内存空间
2、 结构体 structdata{int a,char b}; -- 8字节
共用体 uniondata{int a,char b}; -- 4字节
三、共用体的表现形式?
1、自定义数据类型 -- union 类型名{成员变量};
2、声明共用体类型 -- 不占用内存空间
四、共用体的空间大小
1、sizeof
2、计算:
(1)先找到基本数据类型最大的成员变量
(2)找到占用字节数最大的成员变量
(3)共用体的最终大小是(2)的基础上(也就是在字节数最大的基础上补到整数倍),基本数据类型最大的成员变量的整数倍。
tip:先找到最大的字节数为13,然后补到最大基本数据类型的整数倍,也就是8的整数倍,所以最终大小为16。
五、共用体的应用
1、共用体变量
(1)定义
-- 在声明类型的同时进行定义变量
-- 先声明类型,再定义变量
(2)初始化 -- 只需要给其中一个成员变量初始化 -- 变量名.成员变量
(3)应用
-- 判断cpu的存储模式 -- 大小端
tip:为什么十六进制存储中一个字节是用2个字符存储的?
枚举
一、枚举的作用
-- 望文生义
二、枚举是什么?
-- 枚举就是一个int类型 的数据,使用标识符表示的数据,数据默认是从0开始,依次递增。
三、枚举的表现形式?
-- 自定义的类型 --enum{标识符}; -- 标识符默认全部大写
四、枚举的应用
1、枚举可以赋值,从赋值位置开始一次递增
2、直接调用成员标识符即可
3、广泛使用在switch中,代表case的值进行使用。
注:默认从0开始,如果中间有赋值,那么从赋值开始++