This is the result of a short circuit assessment .
The expression ++xevaluates to 2, and the compiler knows that it 2 || anythingalways evaluates 1("true") no matter what anything. Therefore, he does not go to the assessment anything, and the values yand zdo not change.
If you try using
x=-1;
y=z=1;
, y z , OR .
: asaerl , .
, , , . , OR, ,
++x || (++y && ++z)
(++x || ++y) && ++z
OR ++x ++y && ++z. , , , "" - - . .
, , || && , , , rhs, , lhs .