/*1函數 C++中能夠在函數聲明時爲參數提供一個默認值,spa 當函數調用時沒有指定這個參數的值,編譯器會自動用默認值代替ci */get |
void myPrint(int x = 3)編譯器 {編譯 printf("x:%d", x);table }擴展 /*2gc 函數默認參數的規則程序 只有參數列表後面部分的參數才能夠提供默認參數值 一旦在一個函數調用中開始使用默認參數值,那麼這個參數後的全部參數都必須使用默認參數值 */
|
//默認參數 void printAB(int x = 3) { printf("x:%d\n", x); }
//在默認參數規則 ,若是默認參數出現,那麼右邊的都必須有默認參數 void printABC(int a, int b, int x = 3, int y=4, int z = 5) { printf("x:%d\n", x); } int main62(int argc, char *argv[]) { printAB(2); printAB(); system("pause"); return 0; } |
/* 函數佔位參數 佔位參數只有參數類型聲明,而沒有參數名聲明 通常狀況下,在函數體內部沒法使用佔位參數 */ |
int func(int a, int b, int ) { return a + b; }
int main01() { //func(1, 2); //能夠嗎? printf("func(1, 2, 3) = %d\n", func(1, 2, 3));
getchar(); return 0; }
|
/* 能夠將佔位參數與默認參數結合起來使用 意義 爲之後程序的擴展留下線索 兼容C語言程序中可能出現的不規範寫法 */ //C++能夠聲明佔位符參數,佔位符參數通常用於程序擴展和對C代碼的兼容 |
int func2(int a, int b, int = 0) { return a + b; } void main() { //若是默認參數和佔位參數在一塊兒,都能調用起來 func2(1, 2); func2(1, 2, 3); system("pause"); } |
結論://若是默認參數和佔位參數在一塊兒,都能調用起來 |