LONGEPASS
電腦軟體設計(C++)/C++/Q108
中等
正確率 -
Q108.

有關C++語言陣列(Array)的敘述,以下那些正確?

電腦軟體設計(C++) · 乙級 · C++ · Q108

難易度分析

3 / 5

本題採取複選形式,要求對陣列的記憶體管理、邊界檢查機制及函數傳遞特性等多個核心概念進行全面且精確的判別,較單一選擇題更考驗知識點的完整度。

正確答案 (複選):③, ④

  • ③ 陣列在函數間是用位址傳遞:C++ 中陣列作為函數參數時會衰變 (Decay) 為指標,實際傳遞的是陣列首元素的記憶體位址,屬於位址傳遞而非值傳遞。
  • ④ 陣列內可以存放其他陣列的位址:C++ 允許建立指標陣列,即陣列元素可存放其他陣列或變數的記憶體位址,常見於字串陣列 (char*[]) 或動態配置的二維陣列。

錯誤選項解析

  • ① 陣列的大小在程式執行時可以改變:傳統 C++ 靜態陣列的大小必須在編譯時期決定,執行期間無法動態改變。若需動態調整大小,應使用 std::vector 等容器類別。
  • ② 編譯器支援檢查所使用陣列之註標(Index)是否在宣告範圍中:C++ 編譯器不會自動進行陣列邊界檢查,存取超出宣告範圍的註標會導致未定義行為 (Undefined Behavior),可能引發記憶體損毀或當機。
Learning Tip

"本題核心考點為 C++ 陣列的記憶體特性與傳遞機制。常考陷阱:(1) 混淆傳統陣列與 std::vector 的動態特性;(2) 誤以為 C++ 會像 Java 般自動檢查陣列越界;(3) 陣列傳入函數時大小資訊會遺失,需額外傳遞長度參數。實務上建議優先使用 STL 容器以提升安全性。"

學員答題分佈

①陣列的大小在程式執行時可以改變0%
②編譯器支援檢查所使用陣列之註標(Index)是否在宣告範圍中0%
③陣列在函數間是用位址傳遞0%
④陣列內可以存放其他陣列的位址0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目