2 默認參數
/*1 C++中可以在函數聲明時為參數提供一個默認值, 當函數調用時沒有指定這個參數的值,編譯器會自動用默認值代替 */ |
void myPrint(int x = 3) { printf("x:%d", x); } /*2 函數默認參數的規則 只有參數列表后面部分的參數才可以提供默認參數值 一旦在一個函數調用中開始使用默認參數值,那么這個參數后的所有參數都必須使用默認參數值 */
|
//默認參數 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; } |
3 函數占位參數
/* 函數占位參數 占位參數只有參數類型聲明,而沒有參數名聲明 一般情況下,在函數體內部無法使用占位參數 */ |
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; }
|
4 默認參數和占位參數
/* 可以將占位參數與默認參數結合起來使用 意義 為以后程序的擴展留下線索 兼容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"); } |
結論://如果默認參數和占位參數在一起,都能調用起來 |