2015-10-15 97 views
1

我看到一些代碼片段在那裏我看到調用的函數,我不能understand.It成這個樣子了這是什麼樣的函數調用?

void recursion(int v,int p=0)  //Definition 
{ 
     //whatever in the body 
} 


    main() 
{ 
     //something ... 
     recursion(0);// *_* 
} 

我被教導在學校,調用和定義應該有相同數量的arguments.But的在這裏我無法理解。它看起來像參數的數量可以是不同的數字。

+0

我很抱歉,我不知道它是什麼,因此被稱爲放question.But看起來它已經被answered.Thanks大家在百忙之中inconvinience –

回答

1

這被稱爲默認參數值。它們必須在沒有默認參數值的其他參數之後指定。

然後,如果你不指定函數的參數調用值將被使用。

如果你有一個以上的默認參數,說:

void f(int first, int second = 0, char* third = ""); 

你要忽略以下默認值,如果你ommitting前面一個:

//You can do 
f(0); 
f(1, 2); 
//but not 
f(1, "Three"); 
1

此電話爲等於:

main() 
{ 
     //something ... 
     recursion(0,0);// *_* 
} 

因爲第二個變量的默認值是0.

+1

感謝mate.I希望有人會給予好評的美麗answer.I因爲我的名譽較低,所以無法贊成。但非常感謝 –

相關問題