考虑下面的函数原型: void f(int a,int b=7,char c=’@’); 下面的函数调用中,不合法的是( )。

admin2010-06-06  30

问题 考虑下面的函数原型:    void f(int a,int b=7,char c=’@’);    下面的函数调用中,不合法的是(    )。

选项 A、f(5)
B、f(5,8)
C、f(6,’&’)
D、f(0,0,’@’)

答案4

解析 当一个函数中有多个默认参数时,则形参分布中默认参数应从右到左逐渐定义。在函数调用时,系统按从左到右的顺序将实参与形参结合,当实参的数组不足时,系统将按同样的顺序用说明或定义中的默认值来补齐所缺少的参数。在选项C中,函数调用中只有两个实参,系统按从左到右的顺序将实参与形参结合时,实参‘&’将赋值给血型形参b,显然是非法的。
转载请注明原文地址:https://kaotiyun.com/show/qqjp777K
0

最新回复(0)