Язык:
Русский
English
Приоритет операторов
Операторы │ Приоритет │ Категория
════════════════════╪═══════════╪════════════════════
@ not │ Высший │ Унарные операторы
* / div mod shl shr │ Второй │ Операторы умножения
+ - or xor │ Третий │ Операторы сложения
= <> < > <= >= in │ Низший │ Операторы сравнения
Правила приоритета
1. Операнд между двумя операторами различного старшинства связан
с оператором более высокого старшинства.
2. Операнд между двумя операторами одного старшинства связан с
левым из них.
3. Выражения внутри круглых скобок оцениваются перед обработкой
как одиночный операнд.
Операции с равным старшинством обычно выполняются слева направо, хотя компилятор может реорганизовать операнды, чтобы генерировать более оптимальный код.
Ада
Операторы │ Приоритет │ Категория
══════════════════╪═══════════╪═══════════════════════
** abs not │ Высший │ Приоритетные операторы
* / mod rem │ Второй │ Операторы умножения
+ - & │ Третий │ Операторы сложения
= /= < > <= >= in │ Четвёртый │ Операторы сравнения
and or xor │ Низший │ Логические операторы
Логические операторы вынесены в отдельную категорию, с приоритетом ниже операторов сравнения. Там им и место. Из-за неудобной расстановки старшинства в Borland Pascal нужно было писать скобки вокруг сравнений. В языке Ада "and", "or" и "xor" тоже могут использоваться для побитовых операций, но в этой роли они, как ни крути, применяются гораздо реже.