stru ct 和u nion 结构体和联合体的区别(转) 共用体 构造数据类型,也叫联合体 用途:使几个不同类型的变量共占一段内存(相互覆盖) 结构体是一种构造数据类型 用途:把不同类型的数据组合成一个整体-------自定义数据类型 --------------------------------------------------------------- 结构体变量所占内存长度是各成员占的内存长度的总和
共同体变量所占内存长度是各最长的成员占的内存长度
共同体每次只能存放哪个的一种
共同体变量中起作用的成员是尊后一次存放的成员, 在存入新的成员后原有的成员失去了作用
--------------------------------------------------------------- Stru ctu re 与 Union 主要有以下区别: 1
stru ct 和u nion 都是由多个不同的数据类型成员组成, 但在任何同一时刻, u nion 中只存放了一个被选中的成员, 而 stru ct 的所有成员都存在
在 stru ct 中,各成员都占有自己的内存空间,它们是同时存在的
一个stru ct 变量的总长度等于所有成员长度之 和
在 Union 中,所有成员不能同时占用它的内存空间,它们不能同时存在
Union 变量的长度等于最长的成员的长度
对于u nion的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于stru ct的不同成员赋值是互不影响的
举一个例子: 例: #include void main() { union{ /*定义一个联合*/ int i; struct{ /*在联合中定义一个结构*/ char first; char second; }half; }number; number