民國111年 第2梯次 電腦軟體設計(C++)乙級 學科

第61題

對於同一C 或C++之程式而言,開發為64 位元之程式與32 位元之程式的比較,那些為錯誤?

題目

對於同一C 或C++之程式而言,開發為64 位元之程式與32 位元之程式的比較,那些為錯誤?

  1. (1) 程式指標佔用之記憶體由程式決定,與程式適用之位元數無關
  2. (2) 字串資料部分,64 位元程式佔用比較大之記憶體
  3. (3) 32 位元之程式中使用字串指標(Poin ter)儲存字串資料比使用字元陣列儲存相同字串資料所佔用之記憶體小
  4. (4) 64 位元之程式其指標佔用之記憶體較大

官方答案

(1) 程式指標佔用之記憶體由程式決定,與程式適用之位元數無關、(2) 字串資料部分,64 位元程式佔用比較大之記憶體、(3) 32 位元之程式中使用字串指標(Poin ter)儲存字串資料比使用字元陣列儲存相同字串資料所佔用之記憶體小

解析

指標變數所佔記憶體由「程式位元數」決定,也就是可定址空間的位址寬度:32 位元程式每個指標佔 4 位元組,64 位元程式佔 8 位元組,所以敘述 1「與位元數無關」是錯的,敘述 4「64 位元指標佔用較大」是對的。字串內容本身是一串字元,不論 32 或 64 位元都佔相同位元組數,變大的只有指向它的指標,故敘述 2 錯誤。字串指標只存位址,字元資料仍須另外配置記憶體,並不代表比字元陣列省空間,故敘述 3 錯誤。題目問「錯誤」者,答案為 1、2、3。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料