В следующей таблице перечислены приоритет и ассоциативность операций C++. Операции перечислены сверху вниз в порядке убывания приоритета (т.е. вверху находятся операторы, которые выполняются в первую очередь).
| Приоритет  | Операция  | Описание  | Ассоциативность  | 
| 1  | ::  | Область видимости  | Слева направо  | 
| 2  | a++ a--  | Постинкремент и постдекремент  | 
| ()  | Вызов функции  | 
| []  | Обращение к массиву по индексу  | 
| .  | Выбор элемента по ссылке  | 
| −>  | Выбор элемента по указателю  | 
| 3  | ++a --a  | Прединкремент и преддекремент  | Справа налево  | 
| +   −  | Унарный плюс и минус  | 
| !   ~  | Логическое НЕ и побитовое НЕ  | 
| (type)  | Приведение к типу type  | 
| *  | Indirection (разыменование)  | 
| &  | Адрес  | 
| sizeof  | Размер  | 
| new, new[]  | Динамическое выделение памяти  | 
| delete, delete[]  | Динамическое освобождение памяти  | 
| 4  | .*   ->*  | Указатель на член  | Слева направо  | 
| 5  | *   /   %  | Умножение, деление и остаток  | 
| 6  | +   −  | Сложение и вычитание  | 
| 7  | <<   >>  | Побитовый сдвиг влево и вправо  | 
| 8  | <   <=  | Операции сравнения < и ≤  | 
| >   >=  | Операции сравнения > и ≥  | 
| 9  | ==   !=  | Операции сравнения = и ≠  | 
| 10  | &  | Побитовое И  | 
| 11  | ^  | Побитовый XOR (исключающее ИЛИ)  | 
| 12  | |  | Побитовое ИЛИ (inclusive or)  | 
| 13  | &&  | Логическое И  | 
| 14  | ||  | Логическое ИЛИ  | 
| 15  | ?:  | Тернарное условие  | Справа налево  | 
| =  | Прямое присваивание (предоставляемое по умолчанию для C++ классов)  | 
| +=   −=  | Присвоение с суммированием и разностью  | 
| *=   /=   %=  | Присвоение с умножением, делением и остатком от деления  | 
| <<=   >>=  | Присвоение с побитовым сдвигом слево и вправо  | 
| &=   ^=   |=  | Присвоение с побитовыми логическими операциями (И, XOR, ИЛИ)  | 
| 16  | throw  | Операция выброса исключения  | 
| 17  | ,  | Запятая  | Слева направо  | 
При разборе выражения операция, указанная в некоторой строке таблицы, более тесно связана с аргументами (как в случае применения скобок), чем любая операция из строк, расположенных ниже. Например, выражения std::cout <<a&b и *p++ будут разобраны как (std::cout <<a)&b и *(p++), а не как std::cout <<(a&b) и (*p)++. 
Операции, расположенные в одной ячейке (в одной ячейке может быть несколько строк) имеют одинаковый приоритет и разбираются с учетом ассоциативности. Например, выражение a=b=c будет разобрано как a=(b=c), а не (a=b)=c, так как операция присваивания правоассоциативна. 
Перегрузка операций не влияет на приоритеты. 
Примечание
Стандарт не определяет порядок приоритетов. Они выводятся из грамматики языка. 
const_cast , static_cast , dynamic_cast , reinterpret_cast  и typeid  не включены в таблицу, так как они никогда не двусмысленны. 
Смотрите также
Order of evaluation  of operator arguments at run time. 
| Common operators  | 
| назначение   | incrementNJdecrement   | арифметики   | логичной   | сравнение   | memberNJaccess   | другие   | 
| a = ba = rvalue
 a += b
 a -= b
 a *= b
 a /= b
 a %= b
 a &= b
 a |= b
 a ^= b
 a <<= b
 a >>= b
 | ++a--a
 a++
 a--
 | +a-a
 a + b
 a - b
 a * b
 a / b
 a % b
 ~a
 a & b
 a | b
 a ^ b
 a << b
 a >> b
 | !aa && b
 a || b
 | a == ba != b
 a < b
 a > b
 a <= b
 a >= b
 | a[b]*a
 &a
 a->b
 a.b
 a->*b
 a.*b
 | a(...)a, b
 (type) a
 ? :
 | 
| Special operators  | 
| static_cast  преобразует один тип на другой совместимый типа dynamic_cast  преобразует виртуальный базовый класс для производных class const_cast  преобразует тип совместимого типа с различными cv  qualifiers reinterpret_cast  преобразует тип несовместимы type new  выделяет memory delete  освобождает memory sizeof  запрашивает размер type sizeof...  запрашивает размер Параметр пакета  (начиная с C++11) typeid  запрашивает сведения о типе type noexcept  проверяет выражение может вызвать исключение (начиная с C++11) alignof  запросов выравнивание требований типа (начиная с C++11) |