當前位置:
首頁 > 知識 > 函數的默認值

函數的默認值

在c++中,可以為函數的形參設置默認值。例如,如果我們想寫一個求三角形周長的函數,我們可以這樣寫:

int Sum(int a,int b,int c)

{

return a+b+c;

}

這個函數可以求三條邊都為未知的三角形的周長。如果我們已知其中一條邊,比如說其中一條邊是10,不想每次都把這條邊的值傳遞進去的話,我們就可以這樣寫:

int Sum(int a,int b,int c=10)

{

return a+b+c;

}

我們賦給形參c一個默認值10,這樣我們在就可以在給函數傳實參的時候只傳a,b的值,Sum函數會檢測到c的值並且相加。如果c改變了,這時我們給傳遞了三個參數,例如a=11,b=12,c=13,編譯器就會使用我們實際傳入的實參c的值13,而不是默認值10。

關於函數的默認值,有以下幾點注意事項:

(1)默認值不能重複賦值。

若是給同一個函數的同一個參數賦了兩個默認值,編譯器計算的時候就不知道如何選取,此時程序會報錯。

(2)默認值有順序:需要自右向左依次寫入。

實參的傳遞是從右到左依次入棧的,如果定義默認值時沒有從右向左依次寫入,當傳入小於形參個數的實參時,編譯器無法確認值應該具體賦給誰,就會報錯。

(3)在零初始化的時候,在不方便直接寫出默認值類型的零時,可以借用零初始化的形式。

int Sum(double a=double(),int b=int(),char c=char())

特別的,在給指針初始化的時候,由於指針的特殊性,初始化時編譯器無法理解,我們可以藉助類型定義來實現:

typedef char* CHAR

int Sum(char*c = CHAR);

函數的默認值

打開今日頭條,查看更多精彩圖片
喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

關於使用fastjson統一序列化響應格式
Serverless(無伺服器架構)4大優點和缺點

TAG:程序員小新人學習 |