《重生到现代之从零开始的C语言生活》—— 联合体和枚举

联合体

像结构体一样,联合体也是由一个或多个成员构成

但是只会给最大的成员分配内存,联合体的特点就是所有成员共用一块内存空间,所以也叫共同体

由于所有的成员共用一块内存空间,所以如果给其中的一个成员赋值的话,其他的成员的值也跟着变化

联合体的特点

联合体的有特点就是围绕着所有空间共用一个内存空间展开,因所以联合体的大小至少也是最大成员的大小

假如有联合体

union un
{
    char a;
    int b;
};

联合体中的内存情况如图
在这里插入图片描述

联合体的大小的计算

  • 联合体的大小至少是最大成员的大小
  • 当最大成员的大小不是最大对齐数的整数倍的时候,就要对齐到最大整数倍

联合体的存在就是为了节省内存,如果存在只用其中一个成员的情况的话,那么联合体是一个很好的选择

枚举

枚举,顾名思义就是一一列举
把可能得事情一一列举
就像是日历
就像12个月

enum Day//星期 {
 Mon,
 Tues,
 Wed,
 Thur,
 Fri,
 Sat,
 Sun
};

像是enum Day就是枚举类型
{}中的就是枚举常量
这些枚举常量都是有数值的,默认从0开始,依次增加1,当然我们也可以赋值
像这样

enum Day//星期 {
 Mon=1,
 Tues=2,
 Wed,
 Thur,
 Fri,
 Sat,
 Sun
};

枚举类型的使用

如图
在这里插入图片描述


今天的知识讲解完啦,如果觉得有用可以点一下赞和关注,也可以先收藏以防需要时找不到哦,当然如果作者写的哪里有问题欢迎指出,我们一起进步!!!
祝看到这里的人天天开心哦(笔芯)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值