联合体定义:
在IT领域中,联合体通常指的是一种数据结构,用于存储不同数据类型的组合体。在一些编程语言中,如C语言中的联合体(union),允许在同一块内存地址存储不同类型的数据。联合体中的所有成员共享同一块内存空间,这意味着每次只能存储其中的一个成员的值,节省内存空间。通过访
问不同的成员,可以在程序中实现对不同类型数据的灵活处理。
联合体的定义方式:
例如:
union MyUnion {
int a;
char b;
long c;
};
结构体的存储空间:
1、联合(union)是一种特殊的数据类型,它允许不同的数据类型共享同一块内存空间,只能同时存储其中一个成员的值。
2、 内存空间的大小为最大成员变量空间 ,但要注意内存对齐,可能要调整这个大小
例如:上述联合体,int类型为4字节,long int 类型为4字节,char类型为1字节,所以该联合体的内存空间为4字节。
3、对一个成员的赋值会影响到其他成员的值
联合体示例程序:
#include <stdio.h>
union MyUnion{
int num;
char c;
};
int main()
{
union MyUnion u = {0};
u.num = 97;
printf("%d\n",u.num);//32位二进制,最后8位01100001对应ascll码a
printf("%c\n",u.c);//
u.c = 'A';
printf("%d\n",u.num);
printf("%c\n",u.c);
u.num = 865;
printf("%d\n",u.num);//32位二进制0.....001101100001最后8位01100001十进制65
printf("%c\n",u.c);//对应ascll码a
return 0;
}
运行结果
97
a
65
A
865
a