Наряду с широко используемыми стандартными изображениями операций присваивания (все операнды и символы операций указаны явно), в Си разработаны и используется варианты компактной их записи.
Такая запись реализуется в виде составных присваиваний, выполняемых для бинарных операций.
Стандартная структура бинарной операции присваивания имеет вид
ПР = оп1 боп оп2
, где ПР – результат операции (переменная);
оп1 – первый операнд (операнд 1);
оп2 – второй операнд (операнд 2);
боп – символ бинарной операции.
ü Внимание ! В случае, когда первый операнд (оп1) есть переменная ПР (ПР = ПР боп оп2), возможно использование составных присваиваний.
Структура составной операции присваивания имеет вид
ПР боп = оп2
В качестве ПР (оп1) используются переменные целого (вещественного) типа, в качестве операнда оп2 – константа, переменная, арифметическое выражение аналогичного типа.
Примеры записи операций присваивания
Общепринятая запись
| Запись составного присваивания
|
a = a + b;
tok = tok – dt;
i = i * 2;
dd = dd / f;
| a + = b;
tok - = dt;
i * = 2;
dd / = f;
|
Составные присваивания, как правило, оформляются в виде операторов.
Основное достоинство составных присваиваний – компактность записи, значительный недостаток – потеря наглядности.
Если в качестве операции используется сложение (вычитание), а в качестве операнда оп2 целая константа единица (1), возможно использование специальных форм записи:
· ++ – инкремент (увеличение на единицу);
· - - – декремент (уменьшение на единицу).
Операции могут проставляться до или после переменной ПР.
Структуры использования имеют вид:
++ПР – –ПР
ПР++ ПР– –
Структура ++ПР (– –ПР) называется префиксной (предоперация), структура ПР++ (ПР– –) – постфиксной (послеоперация)
Префиксные операции предписывают увеличение (уменьшение) значения ПР на единицу до использования переменной.
Постфиксные операции предписывают увеличение (уменьшение) значения ПР на единицу после использования переменной.
Префиксные (постфиксные) операции могут использоваться самостоятельно, а также в виде операторов или в составе арифметических выражений других операторов.
Примеры записи операций присваивания
Общепринятая запись
| Запись составного присваивания
|
i = i + 1
j = j –1
| ++i
- - j
| i++
j - -
|
Операция ++i (- -i) предписывает прочитать значение переменной i, увеличить (уменьшить) его на единицу и записать в ту же ячейку для дальнейшего использования.
Операция i++ (i- -) предписывает прочитать и использовать значение переменной i, а затем увеличить (уменьшить) на единицу и записать в ту же ячейку.
Операции широко используются в циклических вычислительных процессах с табличным заданием аргумента для формирования закона изменения. Например, в качестве выр_прир оператора цикла с параметром.
ü Внимание ! При программировании закона изменения параметра цикла использование префиксной и постфиксной форм записи даёт аналогичный результат.
Так заголовок цикла можно оформить одним из вариантов:
for( i=1 ; i<n ; i++ ) или for( i=1 ; i<n ; ++i )
Примеры использования в операторах цикла выполнены в разделе 6.3.