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