目录
📌————本章重点————📌
✨————————————✨
枚举就是以某种有穷序列一一列举出一些成员,例如:一周七天可以一一列举出来等等;
枚举是一种类型,其定义形式如下:
- enum Day
- {
- Monday = 1,
- Tuesday = 2,
- Wednesday = 4,
- Thurday,
- Friday,
- Staturday,
- Sunday
- };
-
- int main()
- {
- enum Day day_1 = Monday;
-
- return 0;
- }
特点:
- {}内成员叫做枚举常量;
- 每个常量之间需要用逗号,最后一个除外;
- 每个常量都有取值,默认从0开始,每次递增1;
- 变量的取值也可以修改:
- 增加代码的可读性和可维护性;
- 和#define定义的标识符比较枚举有类型检查,更加严谨;
- 便于调试;
- 使用方便,一次可以定义多个常量;
联合体也叫共用体;
在进行某些算法的时候,需要使几种不同类型的变量存放到同一段内存单元中,也可以通俗的理解为(合租)。
- #include
-
- //声明
- union Un
- {
- int a;
- char b;
- };
- int main()
- {
- //定义一个联合体变量
- union Un s;
-
- printf("%zd\n", sizeof(s));
-
- printf("%p\n", &s);
- printf("%p\n", &s.a);
- printf("%p\n", &s.b);
-
- return 0;
- }
- 所有成员共用一块空间;
- 联合体的大小至少是最大成员的大小;
- 在调用成员变量的时候不能同时用,否则就不能共用一块空间;
- 改变一个成员的内容,其他成员也会被改变;
- 联合体大小也要遵循结构体中的“对齐”;
- 大小至少是最大成员的大小;
示例:
为什么大小为8个字节?