The assignment operator (
=) and the compound assignment
operators all group right-to-left
. All
require a modifiable lvalue as their left operand; their result is an lvalue
of the type of the left operand, referring to the left operand
. The result in all cases is a bit-field if
the left operand is a bit-field
. In all cases, the assignment is
sequenced after the
value computation of the right and left operands,
and before the
value computation of the assignment expression
. The right operand is sequenced before the left operand
. With
respect to an indeterminately-sequenced function call, the operation of
a compound assignment is a single evaluation
. [
Note 1:
Therefore, a function call cannot intervene between the
lvalue-to-rvalue conversion and the side effect associated with any
single compound assignment operator
. —
end note]