Operator precedence and Associativity
Язык C++ включает все операторы c# и добавляет несколько новых операторов.Операторы определяют вычисление, которое необходимо запустить на одном из следующих:
Один операнд (унарный оператор)
Операнд является 2 (оператор)
3 Операнда (троичный оператор)
Операторы следуют строгому приоритетом, который определяет порядок вычисления выражений, содержащих эти операторы.Операторы связываются с выражением с их осталось или выражение для их вправо; это называется "associativity." В следующей таблице показан приоритет и ассоциативность операторов C++ (от самого высокого к меньшему приоритет).Операторы в одном сегменте таблицы не будут иметь одинаковый приоритет и оцениваются в заданном порядке в выражении если явно устанавливается скобки.
Очередность и Ассоциативность операторов C++
Оператор |
Имя или значение |
Ассоциативность |
---|---|---|
:: |
Разрешение области |
None |
|
|
|
. |
Выделение элемента (объект) |
Слева направо |
–> |
Выделение элемента (указатель) |
Слева направо |
[ ] |
Индекс массива |
Слева направо |
( ) |
Инициализация члена вызова функции |
Слева направо |
++ |
Постфиксное приращение |
Слева направо |
–– |
Постфиксное уменьшение |
Слева направо |
typeid( ) |
имя типа |
Слева направо |
const_cast |
Приведение типов (преобразование) |
Слева направо |
dynamic_cast |
Приведение типов (преобразование) |
Слева направо |
reinterpret_cast |
Приведение типов (преобразование) |
Слева направо |
static_cast |
Приведение типов (преобразование) |
Слева направо |
|
|
|
sizeof |
Размер объекта или типа |
Справа налево |
++ |
Префиксное приращение |
Справа налево |
–– |
Префиксное уменьшение |
Справа налево |
~ |
Дополнение до единицы |
Справа налево |
! |
Логическое нет |
Справа налево |
– |
Унарный минус |
Справа налево |
+ |
Унарный плюс |
Справа налево |
& |
Взятия адреса |
Справа налево |
* |
Косвенное обращение |
Справа налево |
new |
Создайте объект |
Справа налево |
delete |
Уничтожить объект |
Справа налево |
( ) |
Cast |
Справа налево |
|
|
|
.* |
Указатель-к-участник (объектов) |
Слева направо |
–>* |
Указатель-к-участник (указатели) |
Слева направо |
|
|
|
* |
Умножение |
Слева направо |
/ |
Деление |
Слева направо |
% |
Модуль |
Слева направо |
|
|
|
+ |
Сложение |
Слева направо |
– |
Вычитание |
Слева направо |
|
|
|
<< |
Сдвиг влево |
Слева направо |
>> |
Сдвиг вправо |
Слева направо |
|
|
|
< |
Меньше |
Слева направо |
> |
Больше |
Слева направо |
<= |
Меньше или равно |
Слева направо |
>= |
Больше или равно |
Слева направо |
|
|
|
== |
Равенство |
Слева направо |
!= |
Неравенство |
Слева направо |
|
|
|
& |
Побитовое И |
Слева направо |
|
|
|
^ |
Побитовое исключающее ИЛИ |
Слева направо |
|
|
|
| |
Побитовое включающее ИЛИ |
Слева направо |
|
|
|
&& |
Логическое И |
Слева направо |
|
|
|
|| |
Логическое ИЛИ |
Слева направо |
|
|
|
expr1 ? expr2 : expr3 |
Условная |
Справа налево |
|
|
|
= |
Присваивание |
Справа налево |
*= |
назначение умножения |
Справа налево |
/= |
Назначение деления |
Справа налево |
%= |
Назначение модуля |
Справа налево |
+= |
назначение сложения |
Справа налево |
–= |
назначение вычитания |
Справа налево |
<<= |
назначение Лев-переноса |
Справа налево |
>>= |
назначение Прав-переноса |
Справа налево |
&= |
Побитовое И |
Справа налево |
|= |
Побитовое включающее ИЛИ назначение |
Справа налево |
^= |
Побитовый оператор, исключающий ИЛИ назначение |
Справа налево |
|
|
|
throw expr |
выражение хода |
Справа налево |
|
|
|
, |
Comma |
Слева направо |