C语言 看图说话-struct与union结构体联合体

 1.扩展类型包括那些?

答:包括我们学过的数组和enum枚举类型还有即将要学的struct结构体和union联合体。

2.struct和union的区别?

答:struct是存储多个类型对象的内存块,并且这些对象不重叠。而union是一块内存,他的大小等于数据对象最大的空间大小,他的对象会重叠,因此在任何时候只能存储一个数据对象。struct占用的内存大小等于所有成员占用的内存总和,而union占用的内存大小等于他成员占用最大的内存大小。

3.结构体对齐补齐指什么及意义?

答:在结构体创建时会有一个对齐不齐的准则,他会选出所使用的数据类型中字节数最大的类型作为标准,并以它的字节数为一个单位,在创建空间时,如果某类型小于单位剩余字节数,那可以直接将这个类型在该单位的空间中创建,如果大于剩余字节数,那么就会再创建一个单位空间对其进行存储。要注意的是,数组的字节数是以它其中一个成员的字节数为标准的。对齐补齐的意义就是可以节省空间,提高空间使用效率。比如图中这个,这些数据类型最大字节数为4,所以一个单位空间就是四个字节,那么我们可以看到第二排剩余一个字节的空间,而最后一排只使用一个字节,如果将最后一排的char类型放在第二排进行创建,那么就会节省四个字节的空间。

4.union使用时的注意事项?

每个时间只有一个成员在使用空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员懒羊羊

多多支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值