考虑函数原型void test(int a,int b=7,char ch='*'),下面的函数调用中,属于不合法调用的是( )
A、
test(5)
B、
test(5,8)
C、
test(6,'#')
D、
test(0,0,'*')
【正确答案】:C
【题目解析】:
在C++语言中,可以在声明函数时为形参指定默认值。当调用有默认参数值的函数时,调用语句中可以不给出对应的实参,这就相当于调用该函数时以默认值作为参数。
调用函数时,主调函数的实参与被调函数的形参按从左至右的顺序进行匹配对应。
C选项中,实参有2个,少于形参的个数3,故从左至右匹配,将会把字符型实参#赋值给整型形参b,则会产生编译错误。故选C。