Читайте также:
|
|
Все операции в С++ разбиты на группы, имеющие определенный приоритет и ассоциативность. Чем выше приоритет группы операций, тем выше она расположена в таблице. В рамках группы приоритеты одинаковы. Ассоциативность определяет порядок выполнения операций, если отсутствуют скобки и операции имеют один приоритет: часть операций выполняется справа налево, часть – слева направо. Для изменения порядка выполнения операций используются круглые скобки.
операции | краткое описание | ассоциативность |
унарные операции | ||
:: | указание (изменение) области видимости | л à п |
. | прямой доступ к компонентам структурированного объекта, например, структуры или объединения | л à п |
à | косвенный доступ к компонентам структурированного объекта, адресуемого указателем | л à п |
[ ] | индексация (выделение элемента массива) | п à л |
() | вызов функции | п à л |
<тип>() | конструирование | |
++ | постфиксный инкремент | п à л |
-- | постфиксный декремент | п à л |
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 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Классификация операций | | | Арифметические операции |