共用體處理任意型別資料

2021-08-20 10:26:01 字數 949 閱讀 4621

幾種不同型別的變數存放到同一段記憶體單元中。也就是使用覆蓋技術,幾個變數互相覆蓋。這種幾個不同的變數共同占用一段記憶體的結構

共用體是一種資料格式,它能夠儲存不同的資料型別,但在同一時間只能儲存其中的一種型別。共用體的用途之一是,當資料使用兩種或更多種格式,但不會同時使用這些格式時,可以節省空間。

union 共用體名

變數列表;

例如

union data

a, b, c

對於這裡定義的共用體變數a,b,c。下面的引用方式是正確的:a.i (引用共用體變數中的整型變數i),

而不能引用共用體變數,例如:printf("%d",a); <==這種用法是錯誤的。

因為a的儲存區內有好幾種型別的資料,分別占用不同長度的儲存區,這些共用體變數名a,難以使系統確定究竟輸出的是哪乙個成員的值。

1.同乙個記憶體段可以用來存放幾種不同型別的成員,但是在每一瞬間只能存放其中的一種,而不是同時存放幾種。換句話說,每一瞬間只有乙個成員起作用,其他的成員不起作用,即不是同時都在存在和起作用。

2.共用體變數中起作用的成員是最後一次存放的成員,在存入乙個新成員後,原有成員就失去作用。

3.共用體變數的位址和它的各成員的位址都是同一位址。

4.不能對共用體變數名賦值,也不能企圖引用變數名來得到乙個值。

5.共用體型別可以出現在結構體型別的定義中,也可以定義共用體陣列。反之,結構體也可以出現在共用體型別的定義中,陣列也可以作為共用體的成員。

int main()

switch(input)

system("pause");

}

資料型別之共用體

共用體是構造資料型別的一種 共用體也常被稱為聯合體 共用體是單個儲存單位上的元素集合 注意 元素都在乙個儲存單位上,這個儲存單位的大小是最大資料型別的大小 我們用共用體並不是記憶體空間不夠用 用共用體時,主要利用 元素都儲存到乙個儲存單位上 這一特性 共用體的宣告不分配記憶體空間 union hel...

C語言資料型別之共用體

1.定義 在進行某些演算法的c 語言程式設計的時候,需要使幾種不同型別的變數存放到 同一段記憶體單元 中。這幾個不同的變數共同占用同一段記憶體結構。對於共用體變數,系統按該變數中各共用體成員中所需空間最大的那個成員的長度分配記憶體空間。2.共用體型別的定義 union 共用體型別標示符 例如 uni...

C 列舉型別和共用體型別

我們主要學習的是 1.列舉型別 2.共用體型別 a.列舉型別的定義以及列舉型別的格式?列舉型別提供了一組常量的集合。c 中可以使用關鍵字enum定義列舉型別,下面是列舉型別的格式 enum 列舉型別名 enum date b.定義列舉型別時,可以給常量提供乙個整數值。如果沒有提供整數值,預設第乙個常...