一、預設引數的概念
預設引數是宣告或定義函式時為函式的引數指定乙個預設值。在呼叫該函式時,如果沒有指定實參則採用該預設值,否則使用指定的實參。
【例】
#define _crt_secure_no_warnings 1
#include
using
namespace
std;
void testfunc(int a = 0)
int main()
執行結果:
二、預設引數分類
1、全預設引數
void testfunc(int a = 10, int b = 20, int c = 30)
釋:函式的三個引數都賦值了。
2、半預設引數
void testfunc(int a, int b = 20, int c = 30)
釋:函式的引數沒有都賦值。
三、注意事項
1、半預設引數必須從右往左依次提供,不能間隔地給出。
【例1】error—從左往右給引數賦值
#include
using
namespace
std;
void testfunc(int a = 10, int b = 20, int c)
int main()
編譯結果:
【例2】error—間隔地給引數賦值
#include
using
namespace
std;
void testfunc(int a = 10, int b, int c = 30)
int main()
編譯結果:
2、預設引數不能同時在函式宣告和定義中出現,不能二者擇其一。
【例3】error
#include
using
namespace
std;
//函式宣告
void testfunc(int a = 100, int b = 200, int c = 300);
//函式定義
void testfunc(int a = 10, int b = 20, int c = 30)
int main()
編譯結果:
【例4】right—在例3的程式中,把函式定義裡的引數去掉
#include
using
namespace
std;
//函式宣告
void testfunc(int a = 100, int b = 200, int c = 300);
//函式定義
void testfunc(int a, int b, int c)
int main()
執行結果:
3、實參預設從左到右傳值
【例5】
#include
using
namespace
std;
void testfunc(int a = 10, int b = 20, int c = 30)
int main()
執行結果:
4、預設值必須是常量或者全域性變數
5、c語言不支援預設引數
C 預設引數
一 預設引數 在c 中,可以為引數指定預設值。在函式呼叫時沒有指定與形參相對應的實參時,就自動使用預設引數。預設引數的語法與使用 1 在函式宣告或定義時,直接對引數賦值。這就是預設引數 2 在函式呼叫時,省略部分或全部引數。這時可以用預設引數來代替。注意 1 預設引數只可在函式宣告中設定一次。只有在...
C 預設引數
函式的預設引數值,即在定義引數的時候同時給它乙個初始值。在呼叫函式的時候,我們可以省略含有預設值的引數。也就是說,如果使用者指定了引數值,則使用使用者指定的值,否則使用預設引數的值。void func int i 1,float f 2.0f,double d 3.0 int main void 引...
C 預設引數
概念 在函式宣告或定義的時候給形參乙個預設的引數。這樣在呼叫該函式,如果沒有給實參,函式的這個形參就預設為這個值。使用規則 1 預設值必須從右往左給值 2 預設值必須為常量或全域性變數 const static 普通的 全域性變數 也可以作為預設引數 3 預設引數只能出現在宣告或者定義的一處 4 不...