Your expression is grouped as
(++x >= (y * 2)) || ((y % 2) && (z++ % 2))
and this is assigned to sum. This is specified by the grammar of C.
Note also that the right hand side of || is not evaluated if the left hand side is 1: which will mean that z is not incremented in that case.
For avoidance of doubt,
++xis the new value ofx, andz++is the old value ofz.Note also that because
||is a sequencing point, the expression would be well defined even had you writtenx++on the right hand side, rather thanz++.Calling the result of this
sumis an exercise in obfuscation.
Videos
Your expression is grouped as
(++x >= (y * 2)) || ((y % 2) && (z++ % 2))
and this is assigned to sum. This is specified by the grammar of C.
Note also that the right hand side of || is not evaluated if the left hand side is 1: which will mean that z is not incremented in that case.
For avoidance of doubt,
++xis the new value ofx, andz++is the old value ofz.Note also that because
||is a sequencing point, the expression would be well defined even had you writtenx++on the right hand side, rather thanz++.Calling the result of this
sumis an exercise in obfuscation.
Order of evaluation has nothing to do with precedence (or associativity for that matter). The fact that && has higher precedence than || tells you that a || b && c is equivalent to a || (b && c). This does not tell you whether a or b && c get evaluated first.
In case of || and && the standard specifies that the left operand is evaluated first (and the right operand is not evaluated at all if the left operand evaluated to true (in case of ||) or false (in case of &&) respectively). So in a || (b && c), we know that the order is a, b, then c (assuming all three end up being evaluated).
For most other operators, the standard does not specify the order of evaluation, so, for example, in a + b * c, we know that it's equivalent to a + (b * c), but we don't know whether a is evaluated before b * c nor whether b is evaluated before c.

Explanation
Prec. denotes operator precedence, where group 1 has the highest precedence and group 17 the lowest.
Assoc. denotes operator associativity, where such is applicable. Associativity can be either left-to-right or right-to-left.
Sources
My ambition with this post is to provide a operator precedence table on-site at Stack Overflow, which is correct and canonical. This operator precedence table corresponds directly to chapter 6.5 of ISO 9899:2011, where we can read (6.5/3):
The grouping of operators and operands is indicated by the syntax. 85)
And then as a comment, in the informative (not normative) foot note:
85) The syntax specifies the precedence of operators in the evaluation of an expression, which is the same as the order of the major subclauses of this subclause, highest precedence first. /--/
Within each major subclause, the operators have the same precedence. Left- or right-associativity is indicated in each subclause by the syntax for the expressions discussed therein.
All formal operator names from the table are taken from chapter 6.5, where such a name could be found in normative text. Informal names were included in the cases where the programmer community might be more familiar with another name than the one given in the standard.
Here:
http://basen.oru.se/c/operators.html
(I added _Alignof, which I think is the only new operator in C11, to my own table, and published it there. Maybe that's cheating? Comments and suggestions on how to improve the table are welcome.)