普通考試
109年
[資訊處理] 計算機概要
第 22 題
使用 C 程式語言宣告一個聯合(union)資料型態如下:
union unit
{
char c;
int value;
};
若 char 型態與 int 型態的變數分別需要占用 1 個和 4 個位元組的空間,上述的 union 資料型態需要的空間是多少個位元組?
- A 1
- B 4
- C 5
- D 6
思路引導 VIP
同學,回想一下我們在學習 C 語言的自訂資料型態時,struct(結構)和 union(聯合)在「記憶體配置」上最大的差別是什麼?如果說 struct 的成員們是『一人一間房』,那麼 union 的成員們是採取什麼樣的住宿策略?這個策略會如何決定整棟房子(總空間)的最小需求呢?
🤖
AI 詳解
AI 專屬家教
🎉 教授點評:表現優異!
同學,做得非常好!這題答對代表你對 C 語言中特殊資料結構的記憶體配置有著非常清晰的觀念,教授非常肯定你的基本功。
- 觀念驗證:為什麼是 4 個位元組呢?在 C 語言中,聯合(union)的核心特性是「所有成員共享同一塊記憶體位址」。因此,一個
union變數所需的總記憶體空間,取決於它佔用空間最大的成員。在這個題目中,char佔用 $1$ 個位元組,而int佔用 $4$ 個位元組,系統會以最大需求來配置,也就是 $\max(1, 4) = 4$ 個位元組。
▼ 還有更多解析內容