When an expression contains multiple operators, the precedence of the operators controls the order in which the operators are evaluated. For example, in a simple expression such as x + y * z, the * operator gets precedence, and hence the expression is evaluated as x + (y * z).
Except for the assignment operators, all binary operators are left-associative, meaning that operations are performed from left to right. For example, x + y + z is evaluated as (x + y) + z. The assignment operators and the conditional operator (?:) are right-associative, meaning that operations are performed from right to left. For example, x = y = z is evaluated as x = (y = z).
Precedence and associativity can be controlled using parentheses. For example, x + y * z first multiplies y by z and then adds the result to x, but (x + y) * z first adds x and y and then multiplies the result by z.
18.117.187.62