Читайте также:
|
Все операции в С++ разбиты на группы, имеющие определенный приоритет и ассоциативность. Чем выше приоритет группы операций, тем выше она расположена в таблице. В рамках группы приоритеты одинаковы. Ассоциативность определяет порядок выполнения операций, если отсутствуют скобки и операции имеют один приоритет: часть операций выполняется справа налево, часть – слева направо. Для изменения порядка выполнения операций используются круглые скобки.
| операции | краткое описание | ассоциативность |
| унарные операции | ||
| :: | указание (изменение) области видимости | л à п |
| . | прямой доступ к компонентам структурированного объекта, например, структуры или объединения | л à п |
| à | косвенный доступ к компонентам структурированного объекта, адресуемого указателем | л à п |
| [ ] | индексация (выделение элемента массива) | п à л |
| () | вызов функции | п à л |
| <тип>() | конструирование | |
| ++ | постфиксный инкремент | п à л |
| -- | постфиксный декремент | п à л |
| typeid | идентификация типа | |
| dynamic_cast | преобразование типа с проверкой на этапе выполнения | |
| static_cast | преобразование типа с проверкой на этапе компиляции | |
| reinterpret_ cast | преобразование типа без проверки | |
| const_cast | константное преобразование типа | |
| sizeof | размер объекта | п à л |
| ++ | префиксный инкремент | п à л |
| -- | префиксный декремент | п à л |
| ~ | поразрядное отрицание | п à л |
| ! | логическое отрицание | п à л |
| - | арифметическое отрицание (унарный минус) | п à л |
| + | унарный плюс | п à л |
| & | взятие адреса | п à л |
| * | разадресация (разыменование) | п à л |
| new | динамическое выделение памяти | п à л |
| delete | освобождение динамической памяти | п à л |
| (<тип>) | преобразование типа | п à л |
| .* | прямое обращение к компоненту класса по имени объекта и указателю на компонент | л à п |
| à* | косвенное обращение к компоненту класса через указатель на объект и указатель на компонент | л à п |
| бинарные и тернарные операции | ||
| * | умножение операндов арифметического типа | л à п |
| / | деление операндов арифметического типа; при целочисленных операндах абсолютное значение операнда округляется до целого | л à п |
| % | получение остатка от деления целочисленныхоперандов (деление по модулю) | л à п |
| + | бинарный плюс | л à п |
| - | бинарный минус | л à п |
| << | сдвиг влево | л à п |
| >> | сдвиг вправо | л à п |
| < | меньше | л à п |
| <= | меньше или равно | л à п |
| > | больше | л à п |
| >= | больше или равно | л à п |
| == | равно | л à п |
| != | не равно | л à п |
| & | поразрядная конъюнкция (битовое логическое умножение, И) | л à п |
| ^ | поразрядное «исключающее или» | л à п |
| | | поразряднаядизъюнкция(битовое логическое сложение, ИЛИ) | л à п |
| && | логическое умножение, И, конъюнкция | л à п |
| || | логическое сложение, ИЛИ, дизъюнкция | л à п |
| ?: | условная операция (тернарная) | л à п |
| = | присваивание | п à л |
| *= | умножение с присваиванием | п à л |
| /= | деление с присваиванием | п à л |
| %= | остаток от деления с присваиванием | п à л |
| += | сложение с присваиванием | п à л |
| -= | вычитание с присваиванием | п à л |
| <<= | сдвиг влево с присваиванием | п à л |
| >>= | сдвиг вправо с присваиванием | п à л |
| &= | поразрядная конъюнкция с присваиванием | п à л |
| |= | поразрядная дизъюнкцияс присваиванием | п à л |
| ^= | поразрядное исключающее ИЛИ с присваиванием | п à л |
| throw | исключение | |
| , | последовательное вычисление | л à п |
!!!Обратите внимание на следующий пример:
Вычислить значение:
char var = 0x1F & 9 >> 1 + 2;
Используя таблицу приоритетов выполнения операций, имеем:
char var = 0x1F & (9 >> (1 + 2)); и
var == 0x1F & (9>> 3) == 0x1F & 1 == 000111112 & 1 ==1;
Дата добавления: 2015-07-08; просмотров: 239 | Нарушение авторских прав
| <== предыдущая страница | | | следующая страница ==> |
| Классификация операций | | | Арифметические операции |