区别:
结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别占有其自己的内存单元。
共用体变量所占的内存长度等于最长的成员的长度。节省内存
union适用场景:
各数据类型各变量占用空间差不多并且对各变量同时使用要求不高的场合
union使用特点:
1. 使用共用体变量的目的是希望在同一个内存段存放几种不同类型的数据。注意:在每一瞬时只能存放其中一种,而不是同时存放多种。换句话说,每一瞬时只有一个成员起作用,其他成员不起作用。
2. 能够访问的是共用体变量中最后一次被赋值的成员,在对一个新的成员赋值后原有的成员就失去作用。因此在引用共用体变量时应注意当前在共用体变量中起作用的是哪个成员。
3. 共同体变量的地址和它的各成员的地址相同,为同一个地址。
4. 不能对共用体变量名赋值;不能引用变量名来得到一个值;不能在定义共用体变量时对它初始化;不能用共用体变量名作为函数参数。