### Examples Using Compound Assignment Operators

The table below lists the compound assignment operators and shows an expression using each operator:

Operator | Example | Equivalent Expression
--- | --- | ---
`+=` | `index += 2` | `index = index + 2`
`-=` | `*(pointer++) -= 1` | `*pointer = *(pointer++) - 1`
`*=` | `bonus *= increase` | `bonus = bonus * increase`
`/=` | `time /= hours` | `time = time / hours`
`%=` | `allowance %= 1000` | `allowance = allowance % 1000`
`<<=` | `result <<= num` | `result = result << num`
`>>=` | `form >>= 1` | `form = form >> 1`
`&=` | `mask &= 2` | `mask = mask & 2`
`^=` | `test ^= pre_test` | `test = test ^ pre_test`
`|=` | `flag |= ON` | `flag = flag | ON`

Although the equivalent expression column shows the left operands (from the example column) evaluated twice, the left operand is evaluated only once.

Assignment Operators