預設引數是宣告或定義函式時為函式引數指定乙個預設值。在呼叫該函時,如果沒有指定實參則採用該預設值,否則使用指定的實參。
先來看一段簡單的**:
結果:void test(int c =
0)int main (
)
第乙個test函式中: 輸出的結果是預設值0
第二個test函式中: 輸出的結果是指定實參值10
結果:輸出的全是預設值void
test
(int a =1,
int b =2,
int c =3)
總結:全預設時,所有的引數都是預設值,沒有自己傳參,編譯器會使用預設引數列表中的引數
結果:test()編譯出錯,不接受0個引數 test(1) 可以編譯,也有結果void
test
(int a ,
int b =2,
int c =3)
intmain()
總結:這就可以說明半預設引數只能從右向左給出,實參中給的值在形參列表中從左向右匹配
總結:半預設引數是傳參時只傳了部分引數,那麼會在形參列表中從左到右匹配void
testfunc1
(int a =10;
int b =20;
int c =30)
int main (
)
注意: 半預設 只能從右往左預設
注意:
半預設引數必須從右往左依次來給出,不能間隔著跨著給出預設引數不能在函式宣告和定義中同時出現
原因:因為如果生命週期與定義位置同時出現,恰巧兩個位置提供的值不同,那麼編譯器就無法確定到底該用哪乙個預設值
預設值是常量或者全域性變數c語言不支援(編譯器不支援)
C 中的預設引數
預設引數是宣告或定義函式時為函式的引數指定乙個預設值,在呼叫該函式時,如果沒有指定實參則採用該預設值,否則使用指定的實參 void test int a 1 intmain 2.1全預設引數void test int a 1,int b 2,int c 3 2.2半預設引數void test int...
c 函式中的預設引數
函式的預設引數值,即在定義引數的時候同時給它乙個初始值。在呼叫函式的時候,我們可以省略含有預設值的引數。也就是說,如果使用者指定了引數值,則使用使用者指定的值,否則使用預設引數的值。void func int i 1,float f 2.0f,double d 3.0 int main void 引...
C 中函式的預設引數
在c 中增加了函式的預設引數這一功能。在c 中,可以為函式宣告的時候為函式提供乙個預設值,當呼叫該函式的時候,如果沒有函式引數的值,則會使用預設值。例如下面的 include int func int x 0 函式的宣告 int main int argc,char ar int func int ...