C 預設引數

2021-08-21 16:38:34 字數 2094 閱讀 5369

一、預設引數的概念

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

【例】

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