国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++中函數的默認參數詳細解析

2020-01-26 15:44:51
字體:
來源:轉載
供稿:網友

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

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

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

復制代碼 代碼如下:

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

運行結果:

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

即如果設置了一個缺省值,其右邊的參數也應該設定一個缺省值。

即:

復制代碼 代碼如下:

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

這樣做是正確的。

而:

復制代碼 代碼如下:

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

這樣做是錯誤的。

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

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

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

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

復制代碼 代碼如下:

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

錯誤的提示:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 峨边| 桐乡市| 灌阳县| 库车县| 吴旗县| 洛宁县| 水富县| 静安区| 通榆县| 伊吾县| 华坪县| 栖霞市| 河津市| 伊金霍洛旗| 泰顺县| 论坛| 新兴县| 固阳县| 威信县| 饶阳县| 玉树县| 桐城市| 田林县| 错那县| 武川县| 宝清县| 武汉市| 勐海县| 台中县| 哈尔滨市| 南靖县| 唐河县| 丹江口市| 汝州市| 政和县| 介休市| 宕昌县| 梅州市| 滦南县| 合山市| 承德市|