下列默认参数的声明不正确的是()
A、
int max(int a,int b,int c,int d=0);
B、
int max(int a,int b,int c=0,int d=0);
C、
int max(int a=0,int b,int c=0,int d=0);
D、
int max(int a,int b=0,int c=0,int d=0);
【正确答案】:C
【题目解析】:
C++语言规定,提供默认值时必须按从右至左的顺序提供,即有默认值的形参必须在形参列表的最后。如果有某个形参没有默认值,则它左侧的所有形参都不能有默认值。故C错误,默认值应该连续出现再形参列表的最后。
调用函数时,主调函数的实参与被调函数的形参按从左至右的顺序进行匹配对应。即在调用时只能缺省后面的连续若干个实参。