免費開始練習
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。因此,這整個過程只動用了一個預設引數。

▼ 還有更多解析內容

🏷️ 相關主題

C 語言程式設計基礎與陣列記憶體配置
查看更多「計算機概論與程式設計」的主題分類考古題