程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> C語言基礎教程(四)指針、結構、聯合和枚舉(16)

C語言基礎教程(四)指針、結構、聯合和枚舉(16)

編輯:C語言基礎知識
2.結構和聯合的區別
結構和聯合有下列區別:
1.結構和聯合都是由多個不同的數據類型成員組成,但在任何同一時刻,聯合中只存放了一個被選中的成員,而結構的所有成員都存在。
2.對於聯合的不同成員賦值,將會對其它成員重寫,原來成員的值就不存在了,而對於結構的不同成員賦值是互不影響的。
下面舉一個例了來加對深聯合的理解。
例4:
main()
{
union{ /*定義一個聯合*/
int i;
struct{ /*在聯合中定義一個結構*/
char first;
char second;
}half;
}number;
number.i=0x4241; /*聯合成員賦值*/
printf("%c%c\n", number.half.first, mumber.half.second);
number.half.first='a'; /*聯合中結構成員賦值*/
number.half.second='b';
printf("%x\n", number.i);
getch();
}
輸出結果為:
AB
6261
從上例結果可以看出:當給i賦值後,其低八位也就是first和second的值;當給first和second賦字符後,這兩個字符的ASCII碼也將作為i的低八位和高八位。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved