The result should look something like this:
Error, line 2: 'm': undefined variable.
Edit: with this fix, only ++i should be evaluated. Priority does not determine (or even affect) the evaluation order. Priority means that the expression is equivalent to ++i || (++j && ++k) ++i || (++j && ++k) . Evaluation Order for || or && always means that the left operand is evaluated and then there is a sequence point. After the sequence point, the right operand is evaluated if and only if it is necessary to determine the final result (i.e., the right operand || is evaluated if the left operand is evaluated to zero, the right operand && is evaluated if the left operand is evaluated as non-zero).
++i is evaluated in this expression, therefore, since it is the left operand || and is evaluated non-zero, none of the other expressions are evaluated.
Jerry Coffin
source share