原住民族考試四等考試-電子工程類科計算機概要113 年第 29 題單選題考點:union 低位取值考點:enum+union
下列所定義的 C 語言結構變數:
typedef struct {
enum{A, B}kind;
union{int i; short s;}u;
}Number;
Number a;
a.kind = A;
a.u.i = 2;
執行以下的 printf 指令,將會產生何種輸出?
printf("%d %hd", a.kind, a.u.s);
B正確答案
enum 預設從 0 開始,A=0;union 共用記憶體,寫 i=2 讀 short s 在小端序下得 2。
逐選項解析
A0 0union 低位取值✕ 錯誤
kind=A 確實為 0 沒錯,但 u.i=2 寫入後,以 short 讀取 union 在小端序下低位 16 bits 仍是 2,不會是 0。
B0 2enum+union✓ 正確
enum{A,B} 中 A 預設為 0;union 共用記憶體,int i=2 在小端序機器下,低 16 bits 正好是 2,以 short s 讀取得 2。輸出「0 2」。
立即註冊,看完整詳解
這題的完整詳解,註冊就能看 · 每天 2 題免費
精選詳解- 完整逐選項解析
- 秒殺解題技巧與破題關鍵
- 關鍵知識表整理
- 陷阱與易錯提醒
- 同考點歷屆題庫連續刷題與錯題本