Приоритет операторов

Язык:
Русский
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" тоже могут использоваться для побитовых операций, но в этой роли они, как ни крути, применяются гораздо реже.

См. также

Код для вставки: :: :: :: ::
Поделиться: // //