x=y=z=1;
--x&&++y&&++z;
cout<<x<<'\t'<<y<<'\t'<<z<<endl;
结果是0 1 1
为什么不是0 2 2 呢
不懂 帮帮忙 谢谢
--x&&++y&&++z;
因为首先执行--x;执行完之后结果是0,而逻辑与&&的运行原理就是,一旦遇到逻辑结果为0的条件,就马上停止执行后面的,所以++y和++z并没有执行,如果你想系统执行后面两个语句,那把x初始化为非1的值,明白吗?
--x&&++y&&++z 这个语句怎么理解
(--x)&&(++y)&&(++z);即对x自减,y、z自增的结果进行逻辑与运算
c++编程中--x&&++y&&++z是什么意思
&&表达式中,一旦左边的表达式为0,右边的表达式就不用算了。所以++y不会算,且(--x&&++y)的值是0 而0 && ++z同样的,右边不用算,所以结果x,y,z就分别是 0,1,1了
C语言的--x&&++y||++z要怎么理解
--x&&++y ; 这句执行完成后,x=0, y依然是2 如:int y=0, z=2;++y||++z ; 这句执行完成后,y=1 z依然是2
C语言中ll 和&&优先级问题:如何验证&&优先级比||高而避开惰性原则?_百度...
--x||--y&&++z。。从反汇编语句中就可以看出来,是先判断--x,然后再判断后面。虽然&&是优先于||,但他们是同级的,即使先判断后面的,最后还是会需要判断--x,所以,--x在前,直接判断--x,如果为1,就直接不需要判断后面的了,会节省很多时间。--y&&++z||--x。。就会先判断前面--y&&...
C语言++x&&--y&&z++怎么理解?
先将x的值自增1,如果x的新值为0,说明++x返回false,不再执行后续语句(后面y和z的值都不会变),整个表达式也返回false;如果x的新值不为0,继续执行--y,先将y的值自减1,如果y的新值为0,说明--y返回false,不再执行后续语句(后面z的值不会变),整个表达式也返回false;如果y的新值...
有谁能帮俺解释一下++x||++y&&++z是什么意思啊?~~
(++x)||(++y)&&(++z) 就是 1.x=x+1 因为x已经为TRUE,所以(++y)&&(++z)应该不会执行。屏幕输出应该是2,1,1
有C++基础的进~初学者求救……
表达式++x||++y&&++z 运算++x是x先自增在使用,即先得到x=x+1=2,然后遇到了||(逻辑或)运算符,先判断前面的++x是否为假,为假则继续判断后面的表达式否则结束。在这个题中++x得到x=2为真,则表达是为真,运算结束,所以y,z的值不变。所以结果是 x = 2, y = 1, z = 1 举一...
c语言表达式t=++x||++y&&++z;怎么理解,小弟初学,看不懂,求老师指点...
++z就是该语句结束后 z值加1 1。算++y&&++z就是计算y&&z只要y与z都不为0,那么结果为1,否则为0;2。随后算++x||(++y&&++z),令d=++y&&++(这句是为了容易理解才写的),随后判断x||d,只要x与d至少一个不为0,那么结果就是1,否则结果为0;3。然后把结果给t;4。最后x ...
在C++中,如果输入f= --x || y-- && z++;请求输出z时Z等于2,为什么f=...
这个在于你的y值。因为在c++表达式中,逻辑运算会出现“短路”现象。比如y=1,z=1,则y--&&z++的时候,y=1为真,就会计算z++,z就变成了2;而--y&&z++的时候,y=1先变成了0,而0表示假,&&运算符后面的表达式就不会处理了,因此z++根本就不执行,因此z还保持原来的值,为1!
C语言中++、--结合性是怎样的
接下来我们解析下为什么是这个结果:1、++ : 优先级为2,结合规则:自右至左。2、|| 和 && :优先级分别在12和11,结合规则为:自左至右。3、++,--是算术运算符,而 ||, && 是逻辑运算符。4、实际上++x || ++y && ++z;是一个逻辑表达式,整个运算过程遵从的是 || 和 && 的结合...