Поделиться через


Операторы C++, приоритет и ассоциативность

Язык C++ включает все операторы C и еще несколько новых операторов. Операторы определяют, какое вычисление следует выполнить с одним или несколькими операндами.

Приоритет операторов определяет порядок операций в выражениях, содержащих более одного оператора. Ассоциативность оператора определяет, группируется ли операнд в выражении, содержащем несколько операторов с одинаковым приоритетом, с оператором слева от него или справа от него. В следующей таблице показан приоритет и ассоциативность операторов C++ (в порядке убывания приоритета). Операторы с тем же номером приоритета имеют равный приоритет, если другие связи не заданы явно с помощью круглых скобок.

Приоритет и ассоциативность операторов C++

Описание оператора

Group 1 precedence, no associativity

Разрешение области

Group 2 precedence, left to right associativity

Выбор члена для указателей (объект или указатель)

Нижний индекс массива

Вызов функции

Постфиксный инкремент

Постфиксный декремент

Имя типа

Постоянное преобразование типа

Динамическое преобразование типа

Повторно интерпретируемое преобразование типа

Статическое преобразование типа

Group 3 precedence, right to left associativity

Размер объекта или типа

Префиксный инкремент

Префиксный декремент

Дополнение до единицы

Логическое НЕ

Унарное отрицание

Унарный плюс

Взятие адреса

Косвенное обращение

Создание объекта

Удаление объекта

Cast

Group 4 precedence, left to right associativity

Указатель на член (объекты или указатели)

Group 5 precedence, left to right associativity

Умножение

Деление

Модуль

Group 6 precedence, left to right associativity

Сложение

Вычитание

Group 7 precedence, left to right associativity

Сдвиг влево

Сдвиг вправо

Group 8 precedence, left to right associativity

Меньше

Больше

Меньше или равно

Больше или равно

Group 9 precedence, left to right associativity

Равенство

Неравенство

Group 10 precedence left to right associativity

Побитовое И

Group 11 precedence, left to right associativity

Побитовое исключающее ИЛИ

Group 12 precedence, left to right associativity

Побитовое включающее ИЛИ

Group 13 precedence, left to right associativity

Логическое И

Group 14 precedence, left to right associativity

Логическое ИЛИ

Group 15 precedence, right to left associativity

Условие

Group 16 precedence, right to left associativity

Присваивание

Присваивание умножения

Присваивание деления

Назначение модуля

Присваивание сложения

Присваивание вычитания

Присваивание сдвига влево

Присваивание сдвига вправо

Назначение побитового И

Назначение побитового включающего ИЛИ

Назначение побитового исключающего ИЛИ

Group 17 precedence, right to left associativity

Выражение Throw

Group 18 precedence, left to right associativity

Comma

См. также

Ссылки

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

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