一、函式引數的預設值
(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 遞迴呼叫會出現耗盡記憶體 棧記憶...