C 中的預設引數

2021-09-28 18:46:29 字數 1269 閱讀 1676

預設引數是宣告或定義函式時為函式引數指定乙個預設值。在呼叫該函時,如果沒有指定實參則採用該預設值,否則使用指定的實參。

先來看一段簡單的**:

void test(int c =

0)int main (

)

結果

第乙個test函式中: 輸出的結果是預設值0

第二個test函式中: 輸出的結果是指定實參值10

void

test

(int a =1,

int b =2,

int c =3)

結果:輸出的全是預設值

總結:全預設時,所有的引數都是預設值,沒有自己傳參,編譯器會使用預設引數列表中的引數

void

test

(int a ,

int b =2,

int c =3)

intmain()

結果:test()編譯出錯,不接受0個引數 test(1) 可以編譯,也有結果

總結:這就可以說明半預設引數只能從右向左給出,實參中給的值在形參列表中從左向右匹配

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 ...