共用體的成員共享一個存儲空間,在一個程序的不同運行階段,盡管有些變量是相關的,但是仍然可能存在一些不相關的變量,共用體使這些不相關的變量可以共享一個存儲空間,從而避免了不再使用的變量仍占據存儲空間造成的浪費。共用體的成員可以是任意數據類型。存儲一個共用體所需要的字節總數,必須保證可以容納其占用空間最大的成員。共用體雖然一般包含多個數據類型,但是每次只允許訪問一個成員,即一種數據類型。
聲明一個共用體與聲明一個結構體格式相同,只是將struct改成了union。如下:
union number { int x; double y;};可對共用體進行的操作有三種: 一、兩個具有相同類型的共用體之間的賦值。 二、用&運算符取得一個共用體變量的地址。 三、用結構體成員運算符和結構體指針運算符訪問其成員。 兩個共用體并不能比較。
在共用體變量的聲明語句中,可以用與其第一個成員相同數據類型的數值來對共用體變量進行初始化,如下:
union number value = {10};但是如果類型不同,通常會截取部分值并提示錯誤消息,如下:
union number value = {1.4};與結構體中相同
新聞熱點
疑難解答