There are 12 assignment operators; all are syntactically right-associative (they group right-to-left). Thus,
a=(b=c), which assigns the value of
b and then assigns the value of
AssignmentExpression: ConditionalExpression AssignmentAssignment: LeftHandSide AssignmentOperator AssignmentExpressionLeftHandSide: ExpressionName FieldAccess ArrayAccessAssignmentOperator: one of
= *= /= %= += -= <<=
>>= >>>= &= ^= |=
The result of the first operand of an assignment operator must be a variable, or a compile-time error occurs.
This operand may be a named variable, such as a local variable or a field of the current object or class, or it may be a computed variable, as can result from ...