共用體(union)是一種資料格式,它能夠儲存不同的資料型別,但只能儲存其中的一種型別。也就是說,結構可以同時儲存int,long和double,而共用體只能儲存int,long或double。共用體與結構體形式相同,但含義不同。例如,
1:共用體的宣告
可以使用one4all型別的變數來儲存int,long或double,條件是在不同的時間進行,例如:union one4all
;
由於共用體是匿名的,因此long_val和char_val被視為prize的兩個成員變數,他們的位址相同,由程式設計師決定當前哪個成員是活動的。one4all pail;
pail.int_val=15;
cout<
2:匿名共用體
匿名共用體沒有名稱,其成員將成為位於相同位址處的變數。顯然,每次只有乙個成員是當前成員。例如,
struct widge;};
...widge pirze;
...if(prize.type==1)
else
3:共用體常用於節省記憶體。
《C Primer Plus》 復合型別
typename arrayname arraysize 要求arraysize在編譯是已知,不能是變數。陣列作為由基本型別組成的復合資料型別,arrayname要強調是對應基本資料型別組成的陣列 特定陣列 通過下標或索引單獨訪問各個元素 可能引發陣列越界的問題,int a 20 容易錯誤訪問a 2...
c primer plus復合型別之指標
指標是乙個變數,其儲存的是值的位址,而不是值本身。了解 在討論指標之前,我們先看一看如何找到常規變數的位址,只需對變數應用位址運算子 就可以獲得他的位置,例如 int cups 6 double donuts 4.5 cout cups value 程式輸出 cups value 6 and cup...
c primer plus 復合型別之陣列
編譯器會把陣列名轉換為乙個指標常量,是陣列中的第乙個元素的位址,型別就是陣列元素的位址型別,如 int a 10 陣列名a若出現在表示式中,如int p a 那麼它就轉換為第乙個元素的位址,等價於int p a 0 只有兩種情況下例外 第一種是對陣列名使用sizeof運算子 sizeof a 這將會...