C语言联合体详解

下午好诶,今天小眼神给大家带来一篇C语言联合体详解的文章~

目录

联合体

1.  联合体类型的声明

 2.  联合体的特点

代码一: 

代码二:

 3.  相同成员的结构体和联合体对比

​编辑4.  联合体大小的计算 

 5.  联合体的优点

联合体

1.  联合体类型的声明

与我们之前学的结构体很相似,联合体也是由一个或者多个成员组成的,并且成员之间的类型可以不同

联合体与结构体不同的是,联合体的组成成员所占用内存空间是同一块内存空间,并且,编译器只为最大的成员分配足够多的内存空间,所以联合体也叫做:共用体

若是

给联合体其中一个成员赋值,其他成员的数值也会跟着变化。

#include<stdio.h>
union Un
{
	char a;
	int i;
};
int main()
{
	union Un un = { 0 };
	printf("%d\n", sizeof(un));//4
	return 0;
}

 输出结果: 4

 如果是结构体,这里应该输出结果为8,但结构体内成员共用一块空间,只为最大的成员分配足够多的内存空间,所以这里只给 i 分配了4个空间,a存储在 i 的空间中。

 2.  联合体的特点

联合体成员共用一个内存空间,那么一定要保证最大的成员要装下,所以,这样的联合变量的大小,至少是最大成员的大小(因为联合体至少有能力保存最大的那个成员)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值