在C 中,如何使用聯合體?

2021-09-30 07:13:42 字數 782 閱讀 7295

對聯合體變數的引用,是通過對聯合體變數中各成員的引用來實現的。對成員的引用格式如下:

【格式】《聯合體變數名》.《成員名》

【說明】由於聯合體變數的幾個成員共同擁有同一段儲存區域,聯合體變數的位址和其成員的位址都是相同的,因此聯合體變數的各個成員不可能同時存在。某一時刻只有乙個成員存在並發揮作用,其他成員就不存在。聯合體變數中起作用的成員就是最近一次得到賦值的那個成員。因此,只能對聯合體變數中的成員賦值,不能對聯合體變數進行整體賦值,也不能對聯合體變數進行初始化,更不能把聯合體變數作為函式的引數或返回值進行傳遞。

例如,下面是一些針對聯合體變數的正確操作,注意某一時刻起作用的成員是哪乙個。

union      share

sh1 , sh2;

sh1.ch = 'a';                        //此時對字元型成員ch賦值

putc(sh1.ch);                             //此時輸出成員ch的值,成員n和x不存在

sh1.n = 10;                         //此時對整型成員n賦值

cout <>sh1.n;                       //對成員n輸入賦值,此時起作用的是成員n

當然,無論是聯合體變數還是聯合體變數中的成員,其儲存起始位址都是相同的,即&sh1、&sh1.ch、&sh1.n和&sh1.x都是指同一位址。聯合體變數各成員的型別可以是基本的資料型別,比如整型、實型、字元型等,也可以是陣列、結構體型別甚至聯合體型別。相反,聯合體變數也可以作為陣列元素或結構體變數的成員出現。

c 中的聯合體Union

union介紹 共用體,也叫聯合體,在乙個 聯合 內可以定義多種不同的資料型別,乙個被說明為該 聯合 型別的變數中,允許裝入該 聯合 所定義的任何一種資料,這些資料共享同一段記憶體,以達到節省空間的目的。union變數所占用的記憶體長度等於最長的成員的記憶體長度。union與struct比較 先看乙...

聯合體union的使用

1.聯合體union的基本特性 和struct的同與不同 union,中文名 聯合體 共用體 在某種程度上類似結構體struct的一種資料結構,共用體 union 和結構體 struct 同樣可以包含很多種資料型別和變數。不過區別也挺明顯 結構體 struct 中所有變數是 共存 的 優點是 有容乃...

union聯合體使用詳解

1.聯合體 聯合體 union 與結構體 struct 有一些相似之處。但兩者有本質上的不同。在結構體中,各成員有各自的記憶體空間,乙個結構變數的總長度是各成員長度之和。而在聯合體中,各成員共享一段記憶體空間,乙個聯合變數的長度等於各成員中最長的長度。應該說 明的是,這裡所謂的共享不是指把多個成員同...