НазадОглавлениеДалее

4.4.3. Составное присваивание

Операция составного присваивания состоит из простой операции присваивания, скомбинированной с какой-либо другой бинарной операцией. При составном присваивании вначале выполняется действие, специфицированное бинарной операцией, а затем результат присваивается левому операнду. Выражение составного присваивания со сложением, например, имеет вид:
<выражение 1>+=<выражение 2>

Оно может быть записано и таким образом:
<выражение 1>=<выражение 1>+<выражение 2>

Значение операции вырабатывается по тем же правилам, что и для операции простого присваивания. Однако выражение составного присваивания не эквивалентно обычной записи, поскольку в выражении составного присваивания <выражение 1> вычисляется только один раз, в то время как в обычной записи оно вычисляется дважды: в операции сложения и в операции присваивания.

Например, оператор
*strl.str2.ptr+=5;
легче для понимания и выполняется быстрее, чем оператор
*strl.str2.ptr=*strl.str2.ptr+5;

Использование составных операций присваивания может повысить эффективность программ. Каждая операция составного присваивания выполняет преобразования, которые определяются входящей в ее состав бинарной операцией, и соответственно ограничивает типы своих операндов. Результатом операции составного присваивания является значение, присвоенное левому операнду. Тип результата - тип левого операнда.

Пример:
n&=0xFFFE;

В этом примере операция поразрядное И выполняется над n и шестнадцатеричным значением FFFE, и результат присваивается n.


НазадОглавлениеДалее