共用体的概念
共用体也称为联合体,可以使几种不同类型的变量存放到同一段内存单元中。所以共用体在同一时刻只能有一个值,它属于某一个数据成员。由于共用体所有成员位于同一段内存,因此共用体的大小就等于最大成员的大小。
共用体的数据特点:
1、同一个内存段可以用来存放几种不同类型的成员,但是每一次只能存放其中一种,而不是同时存放所有的类型。也就是说在共用体中,只有一个成员起作用,其他成员不起作用。
2、共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就会失去作用。
3、共用体变量的地址和它各个成员的地址是一样的。
#include <stdio.h>
union MyUnion // 声明共用体类型
{
int a; // 共用体成员变量
char c;
};
int main()
{
union MyUnion un; // 定义共用体变量 un
un.a = 97; // 为共用体的成员变量赋值
printf("变量a的值:%d\n", un.a); // 输出成员变量的数据
printf("变量c的值:%c\n", un.c);
un.c = 'A'; // 改变成员变量的数据
printf("变量a的值:%d\n", un.a);
printf("变量c的值:%c\n", un.c);
return 0;
}
运行结果:
在程序中改变共用体的一个成员,其他成员也会随之改变。当给某个特定的成员进行赋值时,其他成员的值也会具有一致的含义,这是因为它们的值的每一个二进制位都被新的值所覆盖。