已知x,y,z均为int型变量. x=y=z=-1; x++&&--y&&z--||--x; printf("x=%d\t y=%d\t z=%d\n",x,y,z);_____请问一下这个题目的解题思路,运算顺序..在运算前一题的时候x=y=z=-1;++x&&++y&&++z;printf("x=%d\t y=%d\t z=%d\n",x,y,z);我是
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 08:51:01
已知x,y,z均为int型变量. x=y=z=-1; x++&&--y&&z--||--x; printf("x=%d\t y=%d\t z=%d\n",x,y,z);_____请问一下这个题目的解题思路,运算顺序..在运算前一题的时候x=y=z=-1;++x&&++y&&++z;printf("x=%d\t y=%d\t z=%d\n",x,y,z);我是
已知x,y,z均为int型变量. x=y=z=-1; x++&&--y&&z--||--x; printf("x=%d\t y=%d\t z=%d\n",x,y,z);_____
请问一下这个题目的解题思路,运算顺序..
在运算前一题的时候
x=y=z=-1;
++x&&++y&&++z;
printf("x=%d\t y=%d\t z=%d\n",x,y,z);
我是这样理解的应该&&左边的++x=0所以后面的不用再计算得出答案:0,-1,-1.
已知x,y,z均为int型变量. x=y=z=-1; x++&&--y&&z--||--x; printf("x=%d\t y=%d\t z=%d\n",x,y,z);_____请问一下这个题目的解题思路,运算顺序..在运算前一题的时候x=y=z=-1;++x&&++y&&++z;printf("x=%d\t y=%d\t z=%d\n",x,y,z);我是
你的理解是正确的,
x++&&--y&&z--||--x;是个逻辑表达式,从左往右执行.
先x++,逻辑值为-1(非零),执行后x=0;因为非零,所以要执行后面的--y,执行后,逻辑值非零,y=-2;因为x++&&--y逻辑值非零,所以还要往后执行z--,执行后,逻辑值非零,z=-2,;这时,后面是或运算,逻辑值已为真(非零),所以不执行后面的--x了,
所以结果为:x=0 y=-2 z=-2
是的,但是这样的运算可能取决于编译器
在VS2010中运算的结果就是你所说的
考这样的题目不是太合适
对,就是那样理解.
c语言里面非0就是真,所以当++x的时候为0,&&又是短路运算,所以后面的++y和++z就不执行了,所以结果就是0, -1, -1