Q25.
一個字元佔用記憶體一個位元組(byte),字串“my_name”佔用記憶體幾個位元組?
數位電子 · 乙級 · 程式語言 · Q25
難易度分析
3 / 5
此題屬於基礎概念與細節辨析題,主要考驗考生對於字串在記憶體中實際儲存結構的掌握程度,以及是否能察覺到計算長度時容易忽略的系統隱含字元。
正確答案:②8
② 8:字串 "my_name" 包含 7 個可見字元,加上 C 語言字串自動添加的 null 終止字元 `\0`,共佔用 8 個位元組。
錯誤選項解析
- ① 7:僅計算可見字元(m、y、_、n、a、m、e 共 7 個),忽略了 C 語言字串末尾的 null 終止字元 `\0`,因此少算 1 個位元組。
- ③ 9:多算了 1 個位元組,可能是誤將其他編碼方式或額外控制字元納入計算,實際上該字串僅需 8 個位元組。
- ④ 10:與實際所需位元組數相差過大,可能是混淆了 UTF-16 寬字元編碼(每個字元佔 2 位元組)與單一位元組編碼的差異。
Learning Tip
"此類題型常考陷阱在於忽略 C 語言字串的 null 終止字元 `\0`。切記:在 C/C++ 中,字串以字元陣列儲存時,編譯器會自動在末尾添加 `\0` 作為字串結束標記,因此實際佔用位元組數 = 可見字元數 + 1。若題目改用 `wchar_t` 寬字元或 UTF-16/UTF-32 編碼,則每個字元佔用 2 或 4 個位元組,需特別留意編碼方式的差異。"
學員答題分佈
①70%
②80%
③90%
④100%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!