1.定義:
在進行某些演算法的c
語言程式設計的時候,需要使幾種不同型別的變數存放到
同一段記憶體單元
中。這幾個不同的變數共同占用同一段記憶體結構。
對於共用體變數,系統按該變數中各共用體成員中所需空間最大的那個成員的長度分配記憶體空間。
2.共用體型別的定義
union 共用體型別標示符
;例如:
union data
int i;
char ch;
float f;
3.共用體變數的定義
union 共用體型別標示符 共用體變數名;
例如:
union data a;
也可在定義共用體型別的同時定義共用體變數
例如:union data
a,b,c;
4.共用體變數的引用
只有先定義了共用體變數才能在後續程式中引用它,有一點需要注意:不能引用共用體變數,而只能引用共用體變數中的成員。
例如: 對於
union data
a,b,c;
這裡定義的共用體變數a,b,c
。下面的引用方式是正確的:
a.i (引用共用體變數中的整型變數
i)a.ch (引用共用體變數中的字元變數
ch)a.f (引用共用體變數中的實型變數
f)5.共用體變數的特點 1
>
同乙個記憶體段可以用來存放幾種不同型別的成員,但是在每一瞬間只能存放其中的一種,而不是同時存放幾種。換句話說,每一瞬間只有乙個成員起作用,其他的成員不起作用,即不是同時都在存在和起作用。 2
>
共用體變數中起作用的成員是最後一次存放的成員,在存入乙個新成員後,原有成員就失去作用。 3
>
共用體變數的位址和它的各成員的位址都是同一位址。 4
>
不能對共用體變數名賦值,也不能企圖
引用變數
名來得到乙個值。 5
>
共用體型別可以出現在
結構體型別
的定義中,也可以定義共用體
陣列。反之,
結構體也可以出現在共用體型別的定義中,陣列也可以作為共用體的成員。
資料型別之共用體
共用體是構造資料型別的一種 共用體也常被稱為聯合體 共用體是單個儲存單位上的元素集合 注意 元素都在乙個儲存單位上,這個儲存單位的大小是最大資料型別的大小 我們用共用體並不是記憶體空間不夠用 用共用體時,主要利用 元素都儲存到乙個儲存單位上 這一特性 共用體的宣告不分配記憶體空間 union hel...
C語言拾遺 C語言資料型別 共用體
摘要 我們知道結構體 struct 是一種構造型別或複雜型別,它可以包含多個型別不同的成員。在c語言中,還有另外一種和結構體非常類似的語法,叫做共用體 union 共用體 union 有時也被稱為聯合或者聯合體,這也是 union 這個單詞的本意。結構體和共用體的區別在於 結構體的各個成員會占用不同...
C語言共用體型別 union
共用體型別的定義 用同一段記憶體單元存放不同型別的指標變數。使用類似覆蓋技術,後乙個資料覆蓋了前面的資料,使幾個不同的變數共享同一段同一段記憶體的結構。定義共用體型別變數的一般形式為 union 共用體名 變數列表 如 union date a,b,c 注意 結構體變數所佔記憶體長度是各成員佔的記憶...