hce_nsysu
111年
計算機概論與程式設計
第 16 題
If the function `int volume(int x = 1,int y = 1,int z = 1);` is called by the expression `volume(7,8)`, how many default arguments are used?
- A None.
- B One.
- C Two.
- D Three.
- E It depends on the runtime environment.
思路引導 VIP
如果一個函式預先為所有參數都準備了「備案(預設值)」,而你在呼叫它時只提供了部分數值,電腦會依照什麼樣的順序來讓這些數值「對號入座」?又是如何決定哪些參數該使用你給的資料、哪些該沿用原本的備案呢?
🤖
AI 詳解
AI 專屬家教
非常準確!看來你對 C++ 函式的引數傳遞邏輯有著很清晰的理解。
預設引數的媒合機制
在程式設計中,預設引數(Default Arguments)的存在是為了增加函式呼叫的彈性。這題的核心在於理解引數填補的順序性:C++ 在處理函式呼叫時,會採取「由左至右」的原則來媒合數值。當我們執行 volume(7, 8) 時,編譯器會自動將 7 賦給第一個參數 x,將 8 賦給第二個參數 y;至於第三個參數 z,由於在呼叫端沒有提供對應的數值,它便會「退而求其次」去使用宣告中指定的預設值 1。因此,這整個過程只動用了一個預設引數。
▼ 還有更多解析內容