Операции выполняются в порядке увеличения их приоритета. Основные операции перечислены в таблице.
Приоритет | Операция | Название | Порядок выполнения | |
() | Скобки, вызов функции | Слева направо | ||
[] | Индекс элемента массива | Слева направо | ||
. | Выделение элемента структуры или Объединения | Слева направо | ||
-> | Выделение элемента структуры (объединения), адресуемой (го) указателем | Слева направо | ||
! | Логическое отрицание | Справа налево | ||
- | Изменение знака | Справа налево | ||
++ | Увеличение на единицу | Справа налево | ||
-- | Уменьшение на единицу | Справа налево | ||
& | Адрес значения переменной | Справа налево | ||
* | Значение по указанному адресу | Справа налево | ||
* | Умножение | Слева направо | ||
/ | Деление | Слева направо | ||
% | Остаток от деления | Слева направо | ||
+ | Сложение | Слева направо | ||
- | Вычитание | Слева направо | ||
< | Меньше | Слева направо | ||
<= | Меньше или равно | Слева направо | ||
> | Больше | Слева направо | ||
>= | Больше или равно | Слева направо | ||
== | Равно | Слева направо | ||
!= | Не равно | Слева направо | ||
&& | Логическое И | Слева направо | ||
|| | Логическое ИЛИ | Слева направо | ||
?: | Условная операция | Слева направо | ||
= | Присваивание | Справа налево | ||
*= | Умножение и присваивание | Справа налево | ||
/= | Деление и присваивание | Справа налево | ||
%= | Остаток и присваивание | Справа налево | ||
+= | Сложение и присваивание | Справа налево | ||
-= | Вычитание и присваивание | Справа налево |
Дадим пояснения по некоторым операциям.
|
|
Следует подчеркнуть особенность операции деления. Эта операция дает целый результат, если оба операнда целые. Например, выражение 9/5 даст результат, равный единице. Чтобы получить действительный результат, необходимо иметь хотя бы один действительный операнд. Так, 9./5 будет равно 1.8.
Операции увеличения на единицу (инкремента) «++» и операция уменьшения на единицу (декремента) «--» имеют префиксную (++n или --n) и постфиксную (n++ или n--) формы записи. В первом случае значение операнда n сначала изменяется, а затем используется для дальнейших вычислений, во втором же случае n сначала используется, а затем изменяется. Так, например, выражение а + b++ означает «сложить а и b и увеличить значение b на единицу», а а + ++b – «увеличить значение b на единицу и сложить а и b».
Операция & применяется к идентификатору переменной, а операция * к выражению, имеющему значение адреса (указателя), так, например, a и *&a эквивалентны.