前言
随着C语言学习的深入,我们了解了自定义类型,有结构体、枚举、联合,下面就为大家介绍一下联合(共用体)。
一、联合是什么?
联合是一种特殊的自定义类型,这种类型的变量也包含一系列的成员,联合的特征时这一系列成员共用同一块空间(所以联和也叫共用体)。
二、使用步骤
1.联合类型的声明
联合类型的声明跟结构体类似。
2.联合类型的定义
联合类型的变量跟结构体同样类似。
3.联合类型的特点
联合体的成员是共用同一块内存空间的,这样一个联合变量的大小至少是最大成员的大小(因为联合至少得有能力保存最大的那个成员),也有一定节省空间的作用。
问题:怎么理解共用同一块内存呢?
我们首先声明一个联合类型
union nn
{
int a;
char b;
};union nn u;
printf("%d",sizeof(u));
我们想一想联合变量u多大呢?
猜想:我们先猜想一下联合成员有两个a和b,a占4个字节,b占1个字节,那么u至少得5个字节吧。
猜想结果
显然猜想错误,为什么呢?
我们先分别看下他们的地址
它们的地址是相同的。其实是因为b和a有一个字节是共用的、共享的,就像共享单车、共享充电宝一样。
图中蓝色就是a,b共用的字节。在使用时如果我们要用a,那么a就占了这个字节,如果我们要使用b,那么b就占了这个字节。
注意:a,b不能同时占用这个字节,就像共享单车一样,两个人不能同时扫一辆共享单车。
. 联合的使用跟结构体的使用类似。
我的分享也到此结束啦!
要是我的分享也能对你的学习起到帮助,
那简直太酷啦!
若有不足,还请大家多多指正,我们一起学习!
公主、王子请:点赞——>收藏——>关注
感谢大家的观看与支持!
祝大家学业有成,得偿所愿,开开心心!