题主问原因,原因是函数的参数赋初始值是按从右到左的顺序!
函数声明中如果对参数赋值,就是默认参数了,如果其中某个形参设置了默认参数,那么之后的参数也必须设置默认参数。
答案是C:
void fun (int x=0,int y)不能对x赋值。
改为如下:
void fun (int x,int y)