1. 程式人生 > 其它 >C++第六篇:函式的預設引數

C++第六篇:函式的預設引數

技術標籤:C/C++

在C++中,定義函式的時候是可以給我們的函式形參指定一個預設引數值 (這個比較稀奇哦,我至少是第一次見,見識太少了吧_ )具體的說就是沒有給這個引數賦值(傳入實參)的話我們的函式就會使用預設值
具體形式:

    //函式引數預設值
    void max(int a,char ar = '@',float fo = 3.14){}

相信小夥伴們都想到了一個問題了吧,上面說到“如果沒有給這個引數賦值。。”,函式的引數還可以不賦值的嗎 。。這個真的不清楚 好吧,來試一下吧 書寫以下程式碼:

#include <iostream>
using namespace
std; //函式引數預設值 void max(int a,char ar = '@',float fo = 3.14) { cout << a << " " << ar << " " << fo << endl; } int main() { //不傳入其他兩個有預設引數的值 max(1); while (1); }

執行,走起。。
在這裡插入圖片描述
結果不出所料,預設值還是好用的
當然,如果你的引數沒有預設值,那麼你再呼叫該函式的時候,就必須傳入一個值了,否則會報錯

簡單點講,就是函式有預設值 你在呼叫的時候可以傳入一個值,也可以不傳,其他沒有預設值的引數就必須傳入引數了,否則報錯。
需要注意一點:
在為形參指定預設引數的時候,有預設引數的形參必須放在最後。也就是說,從左往右 有預設引數的形參,之後的每一個引數都必須要有預設引數。
最後一點:預設值除了用資料常量,也可以用函式表示式 ,來個

#include <iostream>
using namespace std;
int b = 7;
void max(int a,char ar = '@',float fo = b + 3.14)
{
        cout << a <<
" " << ar << " " << fo << endl; } int main() { //不傳入其他兩個有預設引數的值 max(1); while (1); }

在這裡插入圖片描述