
若有函数定义为: int add(int ml=0,int m2=2,int m3=4) {return ml+m2+m3;} 在主函数中有int s=add(1)+add(0,1)+add(0,1,2); 则执行此语句后s的值为()
要计算s的值,需先理解函数add的默认参数规则及三次调用的具体参数传递情况。函数add定义为int add(int m1=0, int m2=2, int m3=4),三个参数均有默认值,调用时若实参数量少于形参,从左到右依次使用默认值。
add(1):仅传递1个实参,匹配第一个参数m1。此时m1=1,m2和m3使用默认值(m2=2,m3=4)。
结果:1 + 2 + 4 = 7。
add(0, 1):传递2个实参,依次匹配m1和m2。m1=0,m2=1(覆盖默认值2),m3使用默认值4。
结果:0 + 1 + 4 = 5。
add(0, 1, 2):传递3个实参,完全覆盖默认值。m1=0,m2=1,m3=2。
结果:0 + 1 + 2 = 3。
将三次调用结果相加:7 + 5 + 3 = 15。
最终s的值为15。