Операторы в C
Операторы C являются подмножеством встроенных операторов C++.
Существуют три типа операторов. Унарное выражение состоит либо из унарного оператора, за которым следует операнд, либо из ключевого слова sizeof
или _Alignof
, за которым следует выражение. Выражением может быть либо имя переменной, либо выражение приведения типа. В последнем случае выражение должно быть заключено в круглые скобки. Бинарное выражение состоит из 2 операндов, соединенных бинарным оператором. Троичное выражение состоит из 3 операндов, соединенных оператором условного выражения.
В языке C имеются следующие унарные операторы:
Символ | Имя. |
---|---|
- ~ ! |
Операторы отрицания и дополнения |
* & |
Операторы косвенного обращения и взятия адреса |
_Alignof |
Оператор выравнивания (начиная с выпуска C11) |
sizeof |
Оператор определения размера |
+ |
Оператор унарного плюса |
++ -- |
Унарные операторы инкремента и декремента |
Бинарные операторы имеют левую ассоциативность, т. е. выполняются слева направо. В языке C имеются следующие бинарные операторы:
Символ | Имя. |
---|---|
* / % |
Мультипликативные операторы |
+ - |
Аддитивные операторы |
<< >> |
Операторы сдвига |
< > <= >= == != |
Реляционные операторы |
& | ^ |
битовые операторы; |
&& || |
Логические операторы |
, |
Оператор последовательного вычисления |
Базовый оператор (:>
), который поддерживается в предыдущих версиях компилятора Microsoft C для 16-разрядных систем, описывается в кратком обзоре синтаксиса языка C.
Оператор условного выражения имеет более низкий приоритет, чем бинарные выражения, и отличается от них тем, что имеет правую ассоциативность.
К выражениям с операторами также относятся выражения присваивания, в которых используются унарные или бинарные операторы присваивания. Унарные операторы присваивания — это операторы инкремента и декремента (++
и --
соответственно). Бинарные операторы присваивания — это оператор простого присваивания (=
) и составные операторы присваивания. Все составные операторы присваивания состоят из другого бинарного оператора и оператора простого присваивания.