乡村极品神医txt:怎么算?

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 20:07:21
main()
{int x,y,z;
x=0,y=z=-1;
x+=-z---y;
printf("x=%d",x);} 结果是2

程序有问题,---在不同的编译环境中会有不同的理解,即(-z--)-y和-z-(--y)两种。

我在VC下运行了一下,最后 x=2,y=-1,z=-2,说明运算顺序是
-(z--)-y

x=0 y=-1 z=-1

x=x+ -z -(--y)
x=x+ 1 -2
x=x-1
x=-1

结果
x=-1

这题够绕的
通过观察结果推出如下结论, 呵呵

x = x -z-- - y;

x = 0 - (-1) - (-1) = 2; z 参与完运算后再自减 1 得 -2

最后结果 x = 2 y = -1 z = -2

{int x,y,z;
x=0,y=z=-1;
x+=-z---y;
printf("x=%d",x);}

--y=-2
-z---y=1+2=3
x=x+3=3