C 函式引數的擴充套件 聽課筆記

2021-08-26 20:39:03 字數 1777 閱讀 6900

一、函式引數的預設值

(1)c++中可以在函式宣告時為引數提供乙個預設值

當函式呼叫時沒有提供引數的值,則使用預設值。

example :

int mul(int x = 0);

int main(int argc, char *argv)

int mul(int x)

(2)引數的預設值必須在函式宣告中指定question :

①函式定義中是否可以出現引數的預設值?

test:

#include #include int mul(int x );

int main(int argc, char *argv)

int mul(int x = 5)

編譯執行:

②當函式宣告和定義的引數預設值不同時會發生什麼?

test:

#include #include int mul(int x = 0);

int main(int argc, char *argv)

int mul(int x = 5)

編譯執行:

可見,出現錯誤:重定義預設引數。

(3)函式預設引數的規則

1.引數的預設值必須從右向左提供

2.函式呼叫使用了預設值,則後序引數必須使用預設值

example :

int add(int x,int y=1,int z = 2)

add(0); //x = 0,y = 1, z = 2

add(2,3); //x = 2, y = 3, z = 2

add(3,2,1); //x = 3,y = 2, z = 1

二、函式佔位引數(1)特點1.佔位引數只有引數型別宣告,而沒有引數名宣告

2.一般情況下,在函式體內部無法使用佔位引數

type:

int func(int x, int)

//...

func(1, 2);//ok

(2)函式佔位引數的意義1.佔位引數與預設引數結合起來使用

2.相容c語言中可能出現的不規範寫法

example:

void func();  

void func(void);

這兩個函式在c語言中是不等價的,而在c++中是等價的。

在c ++中,使用空引數列表宣告的函式不帶引數。 在c中,空引數列表表示函式引數的數量和型別未知。

example:

int f(); // means int f(void) in c++

// int f( unknown ) in c

《全文完》

C 函式引數的擴充套件

1 函式引數的預設值 c 中可以在函式宣告時為引數提供乙個預設值,當函式呼叫時沒有提供引數的址,則使用預設值 int mul int x 0 int main int argc,char ar int mul int x 引數的預設值必須在函式宣告中指定 問題 函式定義中是否可以出現引數的預設值?當...

C 基礎 函式引數擴充套件

c 中可以在函式宣告時為引數提供乙個預設值,當函式呼叫時沒有指定這個引數的值,編譯器會自動用預設值代替。include using namespace std void myprint int x 3 void myprint2 int x 3,int y 4 void myprint2 int x...

c小結 聽課筆記

1 c是基於作業系統的 2 對於乙個 malloc 指標也可以 free 但是會出現記憶體錯誤 如段錯誤 3 str 3 等價於3 str 等價於 str 3 因為 是進行位址運算 4 char dig char str 等價於char dig char str 5 遞迴呼叫會出現耗盡記憶體 棧記憶...