联合是指几个变量共享一个内存位置,并在不同的时间存储不同数据类型和不同长度的变量。
在union中,所有共享成员共享一个空间。
此外,一次只能保存一个成员变量的值。
1、在union中可以定义多个成员。 union的大小由最大成员的大小决定。
2、union成员共享相同大小的内存,一次只能使用一个成员。
3、为一个成员赋值会复盖其他成员的值(),因为他们共享内存。
但是,前提是成员所占的字节数相同。 如果成员所占的字节数不同,则只复盖相应字节的值。
例如,如果为char成员赋值,则不会覆盖整个int成员。
因为char是1字节,int是4字节
4、联合体union的存储顺序由所有成员从低地址开始存储。
例如,//联合c语言
//axdxl
#包含
#包含
typedef union
{
char c;
int a;
int b;
(}Demo;
int main () )
{
Demo d;
d.c='H ';
d.a=10;
d.b=12;
printf ('最初变量所占的字节长度为:%d(n ),sizeof(d ) d )/4 );
printf (代入后的3个值分别为n );
printf(%c(t%d ) t%d(n ),d.c,d.a,d.b );
返回0;
}
图: