Страница 34 из 85 1.3.15. Составное присваивание Кроме простого присваивания, имеется целая группа операций присваивания, которые объединяют простое присваивание с одной из бинарных операций. Такие операции называются составными операциями присваивания и имеют вид: (операнд-1) (бинарная операция) = (операнд-2) . Составное присваивание по результату эквивалентно следующему простому присваиванию: (операнд-1) = (операнд-1) (бинарное операция) (операнд-2) . Отметим, что выражение составного присваивания с точки зрения реализации не эквивалентно простому присваиванию, так как в последнем операнд-1 вычисляется дважды. Каждая операция составного присваивания выполняет преобразования, которые осуществляются соответствующей бинарной операцией. Левым операндом операций (+=) (-=) может быть указатель, в то время как правый операнд должен быть целым числом. Примеры: double arr[4]={ 2.0, 3.3, 5.2, 7.5 } ; double b=3.0; b+=arr[2]; /* эквивалентно b=b+arr[2] */ arr[3]/=b+1; /* эквивалентно arr[3]=arr[3]/(b+1) */ Заметим, что при втором присваивании использование составного присваивания дает более заметный выигрыш во времени выполнения, так как левый операнд является индексным выражением. |