9.9 C++共用體

原創 閆小林 C語言入門到精通 1月5日ide

收錄於話題函數

#C++代碼基礎spa

95個orm

點擊上方「C語言入門到精通」,選擇置頂blog

第一時間關注程序猿身邊的故事圖片


圖片


做者內存

閆小林ci

白天搬磚,晚上作夢。我有故事,你有酒麼?it


C++共用體概述
在C++中,會須要使幾種不一樣類型的變量存放到同一段內存單元中,好比,將一個整型變量、一個字符型變量、一個雙精度型變量放在同一個地址開始的內存單元中,這3個變量在內存中佔的字節數不一樣,但都從同一地址開始存放,這種使幾個不一樣的變量共佔同一段內存的結構,稱爲共用體類型的結構。
聲明共用體類型的通常形式爲 
io

union 共用體類型名 {成員表列 };

定義共用體變量的通常形式爲 
共用體類型名 共用體變量名;

C++容許在聲明共用體類型的同時定義共用體變量,也可沒有共用體類型名而直接定義共用體變量。
//有共用體類型名
union data
{
  int temp;
  char charcter;
  double str;
}union_1,union_2;

//無共用體類型名
union 
{
  int temp;
  char charcter;
  double str;
}union_1,union_2;

C++結構體變量所佔內存長度是各成員佔的內存長度之和,每一個成員分別佔有其 本身的內存單元,共用體變量所佔的內存長度等於 最長的成員的長度。
 C++共用體變量的訪問
C++不能引用共用體變量,而只能引用共用體變量中的成員。
union_1.temp;//引用共用體變量中的整型成員temp
union_1.character;//引用共用體變量中的字符型成員character
union_1.str;//引用共用體變量中的雙精度成員str

C++使用共用體變量的目的是但願用同一個內存段存放幾種不一樣類型的數據,在每一瞬時只能存放其中一種,而不是同時存放幾種。 
 C++共用體類型的特色

  • 共用體變量的地址和它的各成員的地址都是同 一地址。

  • 不能對共用體變量名賦值。

  • 不能企圖引用變量 名來獲得一個值。

  • 不能在定義共用體變量時對它初始化。

  • 不能用共用體變量名做爲函數參數。 


C++可以訪問的是共用體變量中最後一次被賦值的成員,在對一個新的成員賦值後原有的成員就失去做用。 

相關文章
相關標籤/搜索