Очередность и ассоциативность операторов
Каждый оператор в наборе операторов, поддерживаемом средством оценки выражений, имеет назначенный приоритет в иерархии приоритетов и содержит направление, в котором производится его вычисление. Направление вычисления для оператора — это ассоциативность оператора. Операторы с более высоким приоритетом выполняются раньше операторов с более низким приоритетом. Если выполнение выражения предполагает наличие нескольких операторов, порядок выполнения этих операторов определяется их приоритетом. Порядок исполнения может существенно повлиять на результирующее значение. Некоторые операторы имеют одинаковый приоритет. Если выражение содержит несколько операторов с одинаковым приоритетом, то операторы выполняются направленно, слева направо или справа налево.
В следующей таблице представлен список операторов в порядке убывания приоритета. Операторы одного уровня имеют одинаковый приоритет.
Символ оператора |
Тип операции |
Ассоциативность |
---|---|---|
( ) |
Выражение |
Слева направо |
–, !, ~ |
Унарный |
Справа налево |
Приведения |
Унарный |
Справа налево |
*, / ,% |
Мультипликативные |
Слева направо |
+, – |
Аддитивный |
Слева направо |
<, >, <=, >= |
Отношение |
Слева направо |
==, != |
Равенство |
Слева направо |
& |
Побитовое И |
Слева направо |
^ |
Побитовое исключающее ИЛИ |
Слева направо |
| |
Побитовое ИЛИ |
Слева направо |
&& |
Логическое И |
Слева направо |
|| |
Логическое ИЛИ |
Слева направо |
? : |
Условное выражение |
Справа налево |