Программирование на C и C++

Онлайн справочник программиста на C и C++

Увеличение и уменьшение

С предоставляет два полезных оператора, обычно отсутствующих в других языках. Это операторы уменьшения и увеличения, ++ и --. Оператор ++ добавляет 1 к операнду, а -- вычитает 1. Поэтому следующие операторы эквивалентны:

х = х + 1;

это то же самое, что и

++ х;

Аналогично

х = х - 1;

это то же самое, что и

--х;

Как оператор увеличения, так и оператор уменьшения могут стоять перед операндом (префиксный) или после операнда (постфиксный). Например:

х = х + 1;

может быть записано как

++ х;

или

х ++;

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

х = 10;
у = ++x;

В этом случае у устанавливается в значение 11. А если записать это как

х = 10;
у = x++;

то y будет иметь значение 10. В обоих случаях х устанавливается в 11. Бывает необходимо контролировать последовательность операций увеличения или уменьшения.

Приоритет выполнения арифметических операций следующий:

высший + (унарный плюс) - (унарный минус) ++ -- * / %
низший + - (бинарные операторы)

Операторы, обладающие одним приоритетом, вычисляются компилятором слева направо. Круглые скобки могут использоваться для изменения порядка вычисления. Круглые скобки в С трактуются так же, как и во всех остальных языках — они устанавливают наивысший приоритет операций.