НазадОглавлениеДалее

4.3. Операции

Операции в языке Си имеют либо один операнд (унарные операции), либо два операнда (бинарные операции), либо три (тернарная операция). Операция присваивания может быть как унарной, так и бинарной (см. раздел 4.4).

Существенным свойством любой операции является ее ассоциативность. Ассоциативность определяет порядок выполнения в том случае, когда подряд применено несколько операций одного вида. Ассоциативность "слева направо" означает, что первой будет выполняться операция, знак которой записан левее остальных. Например, выражение
b<<2<<2
выполняется как (b<<2)<<2, а не как b<<(2<<2). Ассоциативность "справа налево" означает, что первой будет выполняться операция, знак которой записан правее остальных.

В языке Си реализованы следующие унарные операции:
Знак операцииЗнак операции
-унарный минус
+унарный плюс
~обратный код
!логическое отрицание
&адресация
*косвенная адресация
sizeofопределение размера

Примечание. Операция унарного плюса реализована полностью только в СП ТС. В СП MSC версии 4 она отсутствует, а в версии 5 реализована только синтаксически.

Унарные операции предшествуют своему операнду и ассоциируются справа налево.

В языке Си реализованы следующие бинарные операции:
ЗнакНаименование
* / %мультипликативные операции
+ -аддитивные операции
<< >>операции сдвига
< > <= >= == !=операции отношения
& | ^поразрядные операции
&& ||логические операции
'операция последовательного вычисления

Бинарные операции ассоциируются слева направо.

В языке Си имеется одна тернарная операция - условная, обозначаемая ? :. Она ассоциируется справа налево.


НазадОглавлениеДалее