默认参数指的是当函数调用中省略了实参时自动使用的一个值。如何设置默认值呢?必须通过函数原型。
char * left(const char * str,int n = 1);
left函数返回字符串指针,第二个参数n设置的默认值为0,如果调用时,没有传入此值,相当于传入的就是1,如果传入了值,就按照传入值当做参数。
实现left函数时,不需要带上默认值
char * left(const char * str,int n){
...
}
对于带参数列表的函数,必须从右向左添加默认值。也就是说,要为某个参数设置默认值,则必须为它右边的所有参数提供默认值。
int harpo(int n,int m = 4, int j = 5); //右边都有默认值
int harpo2(int n, int m = 6, int j); //m的右边没有默认值,错误
int harpo3(int n = 1,int m = 1,int j = 2);//可以
具体调用
harpo(2); //相当于harpo(2,4,5);
harpo(1,8); //相当于harpo(1,8,5);
harpo(8,7,6);//没有使用缺省值
实参必须是从左到右的顺序赋给形参,不能跳过任何参数。
harpo(3, , 8); //这样是不允许的