最后结果是10,怎么来的呢?不应该是fun(10,9); 结果10+9=19吗?求大神们解答!必采纳,谢谢各位!fun(int a,int b){ return a>b?a+b:++b;}int main(){ int x=3,y=9,z; z=fun(fun(x++,y++),fun(--x,--y)); //先fun(--x,--y) 2>8?2+8:8+1 =9 //再fun(x++,y++) 3>9?3+9:9+1 =10 //最后fun(fun(x++,y++),fun(--x,--y) 是fun(10,9)吗? printf("%d",z); return 0;}
感谢您,谢谢朋友!我把(--x,--y)看成形参了,原来执行后x,y的值就永久改变了。如果右边的xy都是0,那左边xy都执行++时,是不是右边都是0,左边都是1啊?