Назад | Оглавление | Далее |
Операция составного присваивания состоит из простой операции присваивания, скомбинированной с какой-либо другой бинарной операцией. При составном присваивании вначале выполняется действие, специфицированное бинарной операцией, а затем результат присваивается левому операнду. Выражение составного присваивания со сложением, например, имеет вид:
<выражение 1>+=<выражение 2>
Оно может быть записано и таким образом:
<выражение 1>=<выражение 1>+<выражение 2>
Значение операции вырабатывается по тем же правилам, что и для операции простого присваивания. Однако выражение составного присваивания не эквивалентно обычной записи, поскольку в выражении составного присваивания <выражение 1> вычисляется только один раз, в то время как в обычной записи оно вычисляется дважды: в операции сложения и в операции присваивания.
Например, оператор
*strl.str2.ptr+=5;
легче для понимания и выполняется быстрее, чем оператор
*strl.str2.ptr=*strl.str2.ptr+5;
Использование составных операций присваивания может повысить эффективность программ. Каждая операция составного присваивания выполняет преобразования, которые определяются входящей в ее состав бинарной операцией, и соответственно ограничивает типы своих операндов. Результатом операции составного присваивания является значение, присвоенное левому операнду. Тип результата - тип левого операнда.
Пример:
n&=0xFFFE;
В этом примере операция поразрядное И выполняется над n и шестнадцатеричным значением FFFE, и результат присваивается n.
Назад | Оглавление | Далее |