这个结果怎么y=12,z=12啊
c语言吧
全部回复
仅看楼主
level 1
这个结果怎么y=12,z=12啊#include "stdio.h" main() { int x=2,y,z; y=(++x)+(x++)+(++x); z=(x--)+(--x)+(x--); printf("x=%d,y=%d,z=%d\n",x,y,z); } 答案:(++x) = 3;(x++)=3;(++x)=5; 答案:(x- -)=5;(- -x)=3;(x- -)=3; 结果应该都是11才对啊~ x++不是代表用当前值然后下次才加1的吗? 如果当前就加1的话,第一个(x--)就不应该等于5了,应该等于4了
2006年08月26日 03点08分 1
level 1
y=(++x)+(x++)+(++x); //y=3+4+5(或者顺序相反)z=(x--)+(--x)+(x--); //z=5+4
+3
(或者顺序相反)
2006年08月26日 03点08分 2
level 0
我认为都是4+4+4
2006年08月26日 03点08分 3
level 1
怎么会???第一个4怎么来呢??
2006年08月26日 04点08分 4
level 1
明白了,这是编译器的问题,用VC编译器就好了
2006年08月26日 04点08分 5
level 1
晕~~一个问题要用几个编译器才能解决吗??真的是编译器问题??你用什么编译的啊,我用BC编译的!如果真的是编译器问题,再详细分析一下它会比较好了,结果不重要!!
2006年08月26日 04点08分 6
level 1
真的耶我用VC结果就是y=10,z=12win-tc就是y=12,z=12
2006年08月26日 06点08分 7
1