Таблица приоритетов операторов
Как правило все операторы выполняются слева направо, но имеется такое понятие как приоритет операторов. Если следующий оператор имеет более высокий приоритет, то в начале выполнится оператор с более высоким приоритетом. Например, умножение имеет более высокий приоритет и 4 + 5 * 2 равно 14, но если мы поставим круглые скобки то ( 4 + 5 ) * 2 равно 18.
Символьное обозначение операции | Порядок выполнения |
Высший приоритет | |
() [] . ~ -> | Слева направо |
! &(ун) *(ун) -(ун) ~(ун) ++ -- @(ун) | Справа налево |
% * / | Слева направо |
+ - @ | Слева направо |
<< >> | Слева направо |
< > <= >= %< %> %<= %>= | Слева направо |
!= == %== %!= | Слева направо |
& | Слева направо |
^ | Слева направо |
| | Слева направо |
&& | Слева направо |
|| | Слева направо |
?(,,) | Слева направо |
= += -= *= /= %= &= |= ^= >>= <<= as | Справа налево |
Низший приоритет |
Круглые скобки () изменяют порядок вычисления частей выражения. Квадратные скобки применяются для взятия элементов массива или работы с индексными элементами, например символ строки. Унарные операторы это !, &, *, -, ~, ++, --. Все унарные операторы, за исключением инкремента имеют только префиксную запись. Операции инкремента ++ и -- могут быть как префиксными, так и постфиксными. Операторы &, *, -, @, ~ могут быть как бинарными, так и унарными. Остальные операторы являются бинарными.