C++ Language/Expressions/ChainOfAssignment

The "compound assignment"  is an abbreviation for.

Programmers usually think about  only in terms of its effect (changing the value stored in  's memory), but that expression does also evaluate to a value. In fact, it evaluates to a "lvalue" which means that  is allowed to occur on the left-hand-side of some other assignment (although it would be weird to do so).

Additional information about lvalues (includes interactive examples)