C 函式預設引數注意要點

2021-09-11 11:02:21 字數 993 閱讀 2084

c++中允許為函式提供預設引數,又名預設引數。

使用預設引數時的注意事項:

① 有函式宣告(原型)時,預設引數可以放在函式宣告或者定義中,但只能放在二者之一

double sqrt(double f = 1.0); //函式宣告

double sqrt(double f) //函式定義

② 沒有函式(原型)時,預設引數在函式定義時指定.

//沒有 函式宣告

double sqrt(double f = 1.0) //函式定義

③ 在具有多個引數的函式中指定預設值時,預設引數都必須出現在不預設引數的右邊,一旦某個引數開始指定預設值,它右邊的所有引數都必須指定預設值.

int f (int i1, int i2 = 2, int i3 = 3);     // 正確

int g (int i1, int i2 = 2, int i3); // 錯誤, i3未指定預設值

int h (int i1 = 1, int i2, int i3 = 3); // 錯誤, i2未指定預設值

④ 在呼叫具有預設引數的函式時, 若某個實參預設,其右邊的所有實參都應該預設

//例如, 乙個函式宣告如下

int f(int i1 = 1, int i2 =2, int i3 = 3);

//呼叫函式 f()

f(); //正確, i1=1, i2=2, i3=3

f(3); //正確, i1=3, i2=2, i3=3

f(2, 3); //正確, i1=2, i2=3, i3=3

f(4, 5, 6); //正確, i1=4, i2=5, i3=6

f(, 2, 3); //錯誤, i1預設,其右邊的i2和i3沒有預設

c 預設引數函式注意事項

再有預設引數的函式中,一般我們都把預設引數放在宣告處而不是定義處。如果宣告和定義都有預設引數,編譯器將會報錯。呼叫含有預設實參的函式時,我們可以包含引數,也可以省略。有預設引數的函式,我們可以不帶引數呼叫 所以,在類裡面特別要注意,建構函式如果沒有引數,此時又存在有所有引數都有預設引數的建構函式,也...

函式預設引數(C )

大家都知道在c 中,我們可以為方法的引數指定乙個預設值,像這樣 void foo int i 100 當我們以這種形式呼叫方法的時候 foo 實際上引數i被賦於了預設值,所以相當於呼叫了foo 100 然而在c 中是不支援引數的預設值的,那麼如果我們要用到類似的功能應該怎麼實現呢?考慮下面這個例子 ...

C 函式預設引數

使用預設引數時的注意事項 有函式宣告 原型 時,預設引數可以放在函式宣告或者定義中,但只能放在二者之一 double sqrt double f 1.0 函式宣告 double sqrt double f 函式定義 沒有函式 原型 時,預設引數在函式定義時指定.沒有 函式宣告 double sqrt...