結構體、共用體
1 #include <stdio.h> 2 union 3 { 4 int i; 5 char x[2]; 6 }a; 7 8 void main() 9 { 10 a.x[0] = 10; 11 a.x[1] = 1; 12 printf("%d",a.i); 13 } 14 答案:266 15 16 x86的機器,小端字節序, 17 x[0]=0x0a x[1] = 0x01 18 19 則i就是0x0000010a 20 21 結果就是266.
- 共用體和結構體的區別在於:結構體的每個域都有它自己的存儲空間;共用體所有域共用一個存儲空間。所以共用體每一時刻只有一個域的值有意義。
- 結構體的大小爲所有域佔用空間的總和;共用體的大小爲佔用空間最大的域的大小