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

Слева направо

См. также

Ссылки

Операторы C++

Перегрузка операторов