Операторы присваивания
Операторы присваивания являются бинарными операторами. Левый операнд должен быть переменной, элементом массива, полем структуры и т.д. Порядок вычисления справа налево.
= | Присвоить. |
+= | Прибавить к значению переменной. a += b => a = a + b |
-= | Вычесть из значения переменной. a -= b => a = a - b |
*= | Умножить значение переменной. a *= b => a = a * b |
/= | Разделить значение переменной. a /= b => a = a / b |
%= | Получить остаток от деления. a %= b => a = a % b |
&= | Произвести побитовое И. a &= b => a = a & b |
=) | |
^= | Произвести побитовое исключающее ИЛИ. a ^=b => a = a ^ b |
>>= | Сдвиг вправо и присвоить. a >>= b => a = a >> b |
<<= | Сдвиг влево и присвоить. a <<= b => a = a << b |
Как видите, кроме обычного присваивания, существуют операции с выполнением действия, т.е. после вычисления правого и левого операндов выполняется какая-либо бинарная операция и результат присваивается в левый операнд.
a = 10
a += 10 + 23 // a = 43
a *= 2 // a = 86
if a = 2 // TRUE !!!
{...}
if a == 2 // TRUE if a equals 2
{...}
В одном выражении может быть несколько операций присваивания, так как все эти операции возвращают присвоенное значение. В этом случае вычисление будет идти справа налево.
a = 10 + b = 20 + c = 3
// result: с=3, b=23, a=33
a = ( b += 10 )
Все эти операторы можно определить для переменных любого типа. Подробнее смотрите на странице Переопределение операций operator.