C语言-Union联合

特点:
多个变量之间内存存储空间的部分是重合的

在这里插入图片描述
//所有成员地址相同

	union Un
	{
		char c;
		short s;
		int i;
	};
	int main(void)
	{
		union Un un;
		
		//所有成员地址相同
		printf("%p\n", &un.c);
		printf("%p\n", &un.s);
		printf("%p\n", &un.i);
	}

在这里插入图片描述
//修改一个成员,其他成员也会改变

	union Un
	{
		char c;
		short s;
		int i;
	};
	int main(void)
	{
		union Un un;
		
		//所有成员共享内存
		//修改一个成员,其他成员也会改变
		un.i = 65;
		printf("%d\n%d\n%d\n", un.c, un.s, un.i);
	}

在这里插入图片描述
//计算Union大小
例题1

	union Un
	{
		char c;
		short s;
		int i;
	};
	int main(void)
	{
		union Un un;
		//计算Union大小
		printf("%d\n", sizeof(un));//4
	}

在这里插入图片描述
分析结果
在这里插入图片描述
例题2

	union Un
	{
		char c[5];
		short s;
		int i;
	};
	int main(void)
	{
		union Un un;
		//计算Union大小
		printf("%d\n", sizeof(un));//8
	}

结果
在这里插入图片描述
分析
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43340991/article/details/86561059