普考-資訊處理計算機概要114 年第 24 題單選題
呼叫函式(function)並傳遞參數時,若不希望被呼叫函式使用額外變數空間,並且被呼叫函式對參數值所做任何改動,都希望直接反應到外部(呼叫方)環境,此時應選擇下列何種參數傳遞機制?
Acall by reference正確答案
Bcall by induction
Ccall by library
Dcall by value
A正確答案
傳參考 (call by reference) 直接傳位址,函式內修改會反映到外部,且不需額外記憶體空間複製值。
為什麼答案是 A
call by reference 傳遞變數位址(參考),函式內操作等同操作原變數,修改立即反映到呼叫方,且不需另配記憶體複製實際值,完全符合題目要求。
載入中…
完整詳解
Pro · 無限重點 傳參考 (call by reference) 直接傳位址,函式內修改會反映到外部,且不需額外記憶體空間複製值。
關鍵字「直接反映外部」「不額外空間」→ 傳位址 = call by reference。
逐選項分析
A✓ 正確
call by reference 傳遞變數位址(參考),函式內操作等同操作原變數,修改立即反映到呼叫方,且不需另配記憶體複製實際值,完全符合題目要求。
B✕ 陷阱
call by induction 並非程式語言的參數傳遞機制,純屬虛構干擾項。induction 是數學歸納法用語,與函式呼叫無關。
C✕ 陷阱
call by library 不存在此術語。library 指函式庫,與參數傳遞機制無關,屬誤導選項。
D✕ 陷阱
call by value 會複製實際值到新記憶體空間,需額外變數空間,且函式內修改不會反映到外部,與題目要求相反。
參數傳遞機制比較
| 機制 | 傳遞內容 | 額外空間 | 改動反映外部 |
|---|
| call by value | 複製的值 | 需要 | 否 |
| call by reference | 變數位址 | 不需要 | 是 |
| call by address/pointer | 指標(位址) | 少量(指標) | 是 |
參數傳遞機制在各類考試中反覆出現,出題核心在測「是否真的理解傳參考的本質」。關鍵判斷準則:傳參考 (call by reference) 就是把變數的「記憶體位址」直接交給函式,所以函式內改動會直接影響外部變數,而且不需要額外空間複製值。考生最容易卡在兩點:一是被 induction、library 這類看似專業的英文詞彙誘導,以為電腦科學有各種冷門傳遞法;二是混淆「傳參考」與「傳值」的差異——傳值會複製一份副本進函式,改動不會影響原變數。記住正統機制只有 value、reference、address (pointer)、name 等少數幾種,碰到陌生術語要提高警覺。