c++编程中--x&&++y&&++z是什么意思

int x,y,z;
x=y=z=1;
--x&&++y&&++z;
cout<<x<<y<<z;

为什么结果为0 1 1

多个&&从左往右算,先算--x,结果(--x)的返回值是0.
&&表达式中,一旦左边的表达式为0,右边的表达式就不用算了。
所以++y不会算,且(--x&&++y)的值是0
而0 && ++z同样的,右边不用算,所以结果x,y,z就分别是 0,1,1了
温馨提示:内容为网友见解,仅供参考
无其他回答

c++编程中--x&&++y&&++z是什么意思
所以++y不会算,且(--x&&++y)的值是0 而0 && ++z同样的,右边不用算,所以结果x,y,z就分别是 0,1,1了

--x&&++y&&++z 这个语句怎么理解
(--x)&&(++y)&&(++z);即对x自减,y、z自增的结果进行逻辑与运算

C语言的--x&&++y||++z要怎么理解
--x&&++y ; 这句执行完成后,x=0, y依然是2 如:int y=0, z=2;++y||++z ; 这句执行完成后,y=1 z依然是2

关于C++逻辑运算表达式
++x && ++y && ++z; 首先++x=1, 继续++y=2, 继续++z=2, 结果为x=1, y=z=2 ++x && y-- || ++z; &&的优先级高于||,所以等价于(++x && y--) || ++z, 先算括号里的++x=2, 继续计算y--=2, y=1, 括号里是true,所以++z不执行, 结果为x=z=2, y=1 ...

C语言++x&&--y&&z++怎么理解?
如果x的新值不为0,继续执行--y,先将y的值自减1,如果y的新值为0,说明--y返回false,不再执行后续语句(后面z的值不会变),整个表达式也返回false;如果y的新值不为0,继续执行z++,先判断,如果z的值不为0,则表达式返回true,z变为z+1;如果z的值为0,则表达式返回false,z仍变为z+...

C语言中,++x||++y&&++z的意思是?还有++x&&++y&&++z???
2,++x&&++y&&++z 先给x +1, 若不等于0,计算右边,给y +1若不等于0,计算右边,给z +1若不等于0表达式不等于0;否则整个表达式为0;3,x++&&--y&&z--||--x 先看x 是否为0,如果不为0,x +1;计算右边,先给y-1,若不为0,计算右边,判断z是否为0,不为0,表达式(x++&&--...

c++中的++语句如何理解?
++x就是该语句结束后 x值加1 ++y就是该语句结束后 y值加1 ++z就是该语句结束后 z值加1 1。算++y&&++z就是计算y&&z只要y与z都不为0,那么结果为1,否则为0;2。随后算++x||(++y&&++z),令d=++y&&++(这句是为了容易理解才写的),随后判断x||d,只要x与d至少一个不为0,...

c语言 ++x||++y&&++z
才需要继续执行后一项的值,你所写的程序执行过程如下:由于++x=1为真,则或运算的表达式为真,则其后的++y不执行,所以到此x=1,y=0;继续执行后面的与运算,由于前面的++x||++y表达式为真,不能够决定整个与运算表达式是否为1,则继续执行++z,所以有z=1,所以该表达式的值为1。。。

在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语言++x||++y&&++z输出的xyz是什么
&&的优先级比||高,a&&b,如果a为false, 则b表达式不执行,a||b,如果a为true,则b表达式不执行 假如开始时:x = 1, y = 1, z = 1,则结果为:x= 1 y = 2, z = 2

相似回答