Q24.
函數f1 之第一個參數的資料結構為陣列,下列有關陣列在函數f1 之宣告方式,何者是正確?
電腦軟體設計(C++) · 乙級 · C++ · Q24
難易度分析
2 / 5
考查對函數參數宣告基本語法的掌握程度,需能正確區分純量、參考與陣列在宣告時的語法差異。
正確答案:④void f1(float array[], int size);
④ void f1(float array[], int size);:此宣告使用 `float array[]` 的方括號語法,這是 C++ 中函數接收陣列參數的標準寫法,陣列名稱會衰變為指標(decay to pointer)指向首元素位址。
錯誤選項解析
- ① void f1(int array, int size);:此宣告將第一個參數定義為純量整數變數而非陣列,函數接收的是單一 int 值,無法傳遞整個陣列的記憶體位址。
- ② void f1(int& array, int size);:此宣告使用參考傳遞(pass by reference)語法 `int&`,僅能參考單一整數變數,並非陣列的正確宣告方式。陣列應使用 `[]` 或指標語法。
- ③ void f1(int array(100), int size);:此語法 `int array(100)` 在 C++ 中屬於無效的函數參數宣告格式,括號語法不適用於陣列參數宣告,會造成編譯錯誤。
Learning Tip
"本題核心考點為 C++ 陣列作為函數參數的正確宣告語法。在 C++ 中,陣列傳入函數時會衰變為指標,因此必須使用 `[]` 或 `*` 語法(如 `int arr[]` 或 `int* arr`)來宣告。常見陷阱是混淆「純量變數」、「參考傳遞」與「陣列傳遞」的語法差異,切記 `()` 括號不可用於陣列參數宣告。"
學員答題分佈
①void f1(int array, int size);0%
②void f1(int& array, int size);0%
③void f1(int array(100), int size);0%
④void f1(float array[], int size);0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!