最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++中函數(shù)的默認參數(shù)詳細解析

 更新時間:2013年10月14日 10:19:16   作者:  
在函數(shù)聲明或定義時,直接對參數(shù)賦值,該參數(shù)就是默認參數(shù)。在函數(shù)調(diào)用時,省略部分或全部參數(shù),這時就會使用默認參數(shù)進行代替

使用方法:
(1)在函數(shù)聲明或定義時,直接對參數(shù)賦值,該參數(shù)就是默認參數(shù)。
(2)在函數(shù)調(diào)用時,省略部分或全部參數(shù),這時就會使用默認參數(shù)進行代替。

注意事項:
(1)一般在聲明函數(shù)是設(shè)置默認參數(shù)。

如果在函數(shù)聲明和定義函數(shù)時都設(shè)置了默認參數(shù),則以函數(shù)聲明的默認參數(shù)為準。

復(fù)制代碼 代碼如下:

#include<iostream>
using namespace std;
int main()
{
 double add(double a=3.2,double b=9.6);//在函數(shù)聲明時設(shè)置默認參數(shù)
 cout<<add()<<endl;         //使用默認參數(shù)
 return 0;
}
double add(double a=3.2,double b=9.5)//在定義函數(shù)時設(shè)置默認參數(shù)
{
 return a+b;
}

運行結(jié)果:

(2)默認參數(shù)的定義順序是自右向左。

即如果設(shè)置了一個缺省值,其右邊的參數(shù)也應(yīng)該設(shè)定一個缺省值。

即:

復(fù)制代碼 代碼如下:

<pre name="code" class="cpp">int add(int a,int b=1,int c=1);</pre> 

這樣做是正確的。

而:

復(fù)制代碼 代碼如下:

int add(int a=1,int b,int c);

這樣做是錯誤的。

這樣做是因為實參傳給系統(tǒng)之后,系統(tǒng)會自左向右與形參進行匹配。

如果函數(shù)時add(1,2),那么a=1,b=2,c等于多少呢?我們只有把參數(shù)全部傳遞過去之后,系統(tǒng)才能獲得c的值,但這樣做的話,為什么還要設(shè)置函數(shù)的默認參數(shù)呢?

所以編譯系統(tǒng)不允許程序員這么做,因為這么做是毫無意義的。
(3)默認參數(shù)的調(diào)用順序是自左向右。

我們在使用函數(shù)的時候,實參必須是由左自右書寫的。

復(fù)制代碼 代碼如下:

/*正確的用法*/
add(1,2,3);//傳遞三個參數(shù)的值
add(1,2);//傳遞兩個參數(shù)的值
add(1);//傳遞一個參數(shù)的值
add();//不傳遞參數(shù)的值
/*錯誤的用法*/
add(,2,3);//不能省略掉左邊的參數(shù)的值,應(yīng)該右左向右傳值

錯誤的提示:

相關(guān)文章

最新評論

寿阳县| 青冈县| 福建省| 双鸭山市| 连州市| 密山市| 葵青区| 东港市| 吐鲁番市| 松阳县| 花莲市| 兰坪| 仁怀市| 上饶市| 依兰县| 玛多县| 丰城市| 阿图什市| 洛阳市| 肃南| 淮滨县| 新干县| 罗城| 开封市| 红河县| 南宫市| 瑞安市| 溆浦县| 九龙县| 安新县| 汉寿县| 盈江县| 华阴市| 高青县| 湘乡市| 万源市| 宜宾市| 富川| 巩留县| 神木县| 西和县|