Yes, because there is a sequence point between evaluation of first and second operand of ||
operator.
N1570 5.1.2.3 Program execution, paragraph 3 says:
The presence of a sequence point
between the evaluation of expressions A and B implies that every value computation and
side effect associated with A is sequenced before every value computation and side effect
associated with B.
N1570 6.5.14 Logical OR operator, paragraph 4 says:
Unlike the bitwise | operator, the || operator guarantees left-to-right evaluation; if the
second operand is evaluated, there is a sequence point between the evaluations of the first
and second operands. If the first operand compares unequal to 0, the second operand is
not evaluated.