读书三年,便知天下无病不治;
治病三年,便知天下无方可用;
(一)共用体篇
与结构体类似,区别在于对内存的使用方式。结构体是每个成员之间分别占用自己的空间,而共用体,顾名思义,就是各成员之间共用一段内存。
一,类型定义与变量定义
1,定义类型
union 共用体名
{
成员列表;
};
例:
union Untest
{
char c;
short s;
int I;
}un1;//定义共用体类型的同时顶定义变量
2,内存分析
共用体myun的三个成员:un1.c,un1.s,un.共用一段内存空间。空间大小为于类型长度最大的成员的类型大小。在本例中为4个字节。
union Untest
{
char c;
short s;
int i;
}un1;//大小为sizeof(int)
内存结构图:
结果如下:
共用体成员拥有共同的首地址。根据所访问成员的类型大小来决定寻址能力的大小。
3,共用体成员具有瞬时性
由于共用体成员之间共用一段内存,所以,共用体成员的赋值会相互影响,最后一次更新的值为有效值!
结果如下: