有时候同一个内存空间存放类型不同,不同类型的变量共享一块空间。
联合体像结构体但是有区别
结构体元素有单独的内存空间,联合体元素共享空间,空间大小由最大类型确定。
结构体元素互不影响,联合体赋值会导致覆盖。
看下面一个案例:
这里我们定义了一个结构体和一个联合体。
输出sizeof,并且输出每一个属性的内存地址,我们来看看结果怎么样。
可以看到同一个结构体T中每个元素都有独立的内存空间,而联合体只使用一个内存空间。
注意:一定要注意联合体的值覆盖问题,给每一个元素赋值,最后要输出的值都是最后赋的值。