考虑函数原型void test(int a,int b=7,char ch='*'),下面的函数调用中,属于不合法调用的是(   ) 

考虑函数原型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。


Top