C++中能夠在函數聲明時爲參數提供一個默認值,ios
當函數調用時沒有指定這個參數的值,編譯器會自動用默認值代替函數
函數默認參數的規則spa
只有參數列表後面部分的參數才能夠提供默認參數值code
一旦在一個函數調用中開始使用默認參數值,那麼這個參數後的全部參數都必須使用默認參數值blog
#include <iostream> using namespace std; void myPrint(int x = 3) { cout<<"x="<<x<<endl; } //在默認參數規則 ,若是默認參數出現,那麼右邊的都必須有默認參數 void myPrint2(int x = 3, int y = 4) { cout<<"x="<<x<<endl; } int main(void) { //1 若 你填寫參數,使用你填寫的,不填寫 則默認 myPrint(4); myPrint(); return 0; }
佔位參數:編譯器
//函數佔位參數 函數調用時,必須寫夠參數 void func1(int a,int b,int) { cout<<"a="<<a<<" b="<<b<<endl; } void func2(int a,int b,int = 0) { cout<<"a="<<a<<" b="<<b<<endl; } int main(void) { //func1(1,2); //too few arguments to function 'void func1(int, int, int)' func1(1,2,3); func2(1,2); func2(1,2,3); return 0; }
運行結果:io