免費開始練習
普通考試 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 語言中特殊資料結構的記憶體配置有著非常清晰的觀念,教授非常肯定你的基本功。

  1. 觀念驗證:為什麼是 4 個位元組呢?在 C 語言中,聯合(union)的核心特性是「所有成員共享同一塊記憶體位址」。因此,一個 union 變數所需的總記憶體空間,取決於它佔用空間最大的成員。在這個題目中,char 佔用 $1$ 個位元組,而 int 佔用 $4$ 個位元組,系統會以最大需求來配置,也就是 $\max(1, 4) = 4$ 個位元組。
▼ 還有更多解析內容

升級 VIP 解鎖