C++ 預設參數 預設參數概述 在 C++ 中,函數參數可以擁有預設值。這意味著,在調用函數時,如果省略了某個參數,那麼將使用為該參數指定的預設值。 設置預設參數 預設參數值使用等號 = 符號進行設置,位於參數聲明的類型之後。例如: void myFunction(string country = ...
C++ 預設參數
預設參數概述
在 C++ 中,函數參數可以擁有預設值。這意味著,在調用函數時,如果省略了某個參數,那麼將使用為該參數指定的預設值。
設置預設參數
預設參數值使用等號 =
符號進行設置,位於參數聲明的類型之後。例如:
void myFunction(string country = "Norway");
在這個例子中,country
是一個參數,它的預設值為 "Norway"
。這意味著,如果在調用 myFunction
時沒有顯式指定 country
參數,那麼函數將使用 "Norway"
作為其值。
示例:使用預設參數
以下示例展示瞭如何使用預設參數:
void myFunction(string country = "Norway") {
cout << country << "\n";
}
int main() {
myFunction("Sweden"); // 輸出:Sweden
myFunction("India"); // 輸出:India
myFunction(); // 輸出:Norway
myFunction("USA"); // 輸出:USA
return 0;
}
在該示例中,myFunction
函數有兩個調用:
- 第一次調用顯式指定了參數
country
為"Sweden"
,因此輸出"Sweden"
。 - 第二次調用顯式指定了參數
country
為"India"
,因此輸出"India"
。 - 第三次調用沒有指定參數
country
,因此使用預設值"Norway"
,輸出"Norway"
。 - 第四次調用顯式指定了參數
country
為"USA"
,因此輸出"USA"
。
多個參數和預設參數
函數可以擁有多個參數,其中一部分或全部都可以擁有預設值。例如:
void myFunction(string fname, int age = 18) {
cout << fname << " Refsnes is " << age << " years old.\n";
}
int main() {
myFunction("Liam"); // 輸出:Liam Refsnes is 18 years old.
myFunction("Jenny", 25); // 輸出:Jenny Refsnes is 25 years old.
return 0;
}
在這個例子中,myFunction
函數有兩個參數:fname
和 age
。age
參數擁有預設值 18
,這意味著如果在調用函數時沒有顯式指定 age
參數,那麼將使用 18
作為其值。
函數返回值和預設參數
預設參數僅適用於函數參數,不適用於函數返回值。函數的返回值類型由函數聲明中的類型決定,與預設參數無關。
總結
C++ 中的預設參數是一種方便的功能,可以簡化函數調用並提高代碼的可讀性。通過使用預設參數,您可以避免在每次調用函數時都需要顯式指定所有參數,尤其是對於那些經常使用相同值的可選參數。
C++ 函數 - 引用傳遞
引用傳遞概述
在 C++ 中,函數參數可以使用引用傳遞的方式進行傳遞。引用傳遞是指函數直接訪問函數調用者提供的變數的記憶體地址,而不是複製變數的值。這意味著函數可以直接修改調用者變數的值,而無需創建副本。
引用傳遞通常用於以下兩種情況:
- 需要在函數中修改調用者變數的值
- 需要在函數中傳遞大型數據結構,例如數組或對象,以避免複製數據的開銷
引用傳遞語法
引用傳遞的參數聲明與普通參數聲明類似,但需要在參數類型後面添加一個 &
符號。例如:
void swapNums(int &x, int &y);
在這個例子中,x
和 y
是引用參數。這意味著函數 swapNums
將直接訪問調用者提供的變數的記憶體地址。
引用傳遞示例
以下示例展示瞭如何使用引用傳遞來交換兩個變數的值:
void swapNums(int &x, int &y) {
int temp = x;
x = y;
y = temp;
}
int main() {
int firstNum = 10;
int secondNum = 20;
cout << "Before swap: " << firstNum << " " << secondNum << endl;
swapNums(firstNum, secondNum);
cout << "After swap: " << firstNum << " " << secondNum << endl;
return 0;
}
在該示例中,swapNums
函數接收兩個引用參數 x
和 y
。當調用 swapNums
函數時,它將直接訪問 firstNum
和 secondNum
變數的記憶體地址,並交換它們的值。
引用傳遞與值傳遞的區別
特性 | 引用傳遞 | 值傳遞 |
---|---|---|
參數類型 | 引用類型 (int&、string& 等) | 普通類型 (int、string 等) |
參數傳遞 | 直接傳遞變數的記憶體地址 | 複製變數的值 |
修改參數值 | 可以修改調用者變數的值 | 不能修改調用者變數的值 |
效率 | 通常比值傳遞更有效 | 通常比引用傳遞效率低 |
引用傳遞的註意事項
- 引用傳遞的參數必須在函數調用之前進行初始化。
- 不能將空指針或野指針作為引用傳遞的參數。
- 引用傳遞的參數不能重新綁定到其他變數。
總結
C++ 中的引用傳遞是一種強大的功能,可以提高代碼的效率和可讀性。通過理解引用傳遞的語法、用法和註意事項,您可以編寫更加簡潔、高效的 C++ 程式。
最後
為了方便其他設備和平臺的小伙伴觀看往期文章:
微信公眾號搜索:Let us Coding
,關註後即可獲取最新文章推送
看完如果覺得有幫助,歡迎點贊、收藏、關註