Читайте также:
|
|
o Имеющиеся в распоряжении операции и их приоритеты и уровни приоритетов при оценивании выражений следующие:
1.::
2.. -> [] () x++ x--
3. ++x --x! *(разименов.) &(вз. адрес) +(унарн.) -(унар.) new delete sizeof
4. * / %
5. + -
6. << >> (i/o в C++, двоичный сдвиг в C)
7. < <= > >=
8. битовые операции: ^ ~ & |
9. ==!=
10. &&
11. ||
12. = += -= *= /= %=
При определении порядка выполнения операций скобки оцениваются в направлении изнутри-наружу. Если в одном выражении записано несколько операций одинакового приоритета, унарные операции, условная операция и операции присваивания выполняются справа налево, остальные - слева направо.
Полная таблица приоритетов.
Table 1. C++ Приоритеты и ассоциативность операций | |||
Приоритет | Операция | Ассоц. | Смысл |
:: | Операция разрешения области действ. | ||
(expression) | Группировка | ||
() | L–R | Вызов функции | |
() | Преобразование типа значения, type (expr) | ||
[] | Индексирование | ||
-> | Селектор члена (косв.) | ||
. | Селектор (Прямое обращение к члену) | ||
const_cast | Специальное приведение типа (cast) | ||
dynamic_cast | Спец. приведение типа | ||
reinterpret_cast | Спец. приведение типа | ||
static_cast | Спец. приведение типа | ||
typeid | Идентификация типа (RTTI) | ||
++ | Инкремент, postfix | ||
-- | Декремент, postfix | ||
3 (все унарн.) | ! | R–L | Логическое отрицание |
~ | Побитовое отрицание | ||
+ | Унарный плюс (знак +) | ||
- | Унарный минус (знак -) | ||
++ | Инкремент, prefix | ||
-- | Декремент, prefix | ||
& | Получение(взятие) адреса | ||
* | Разадресация (разыменование, косвен. значение) | ||
() | Приведение типа, (type) expr | ||
sizeof | Размер в байтах | ||
new | Динамич. выделение памяти | ||
new [] | Динамическ. выдел. памяти под массив | ||
delete | Динамич. освобождение памяти | ||
delete [] | Динамич. освобождение памяти (массив) | ||
.* | L–R | Разыменование члена | |
->* | Косвенное разименов. члена | ||
5 (все бинарн.) | * | L–R | Умножение |
/ | Деление | ||
% | Получение остатка (Modulus) | ||
6 (все бинарн.) | + | L–R | Сложение |
- | Вычитание | ||
<< | L–R | Левый двоичн. сдвиг | |
>> | Правый двоичн. сдвиг | ||
< | L–R | Меньше чем | |
<= | Меньше или равно | ||
>= | Больше или равно | ||
> | Больше чем | ||
== | L–R | Равно | |
!= | Не равно | ||
10 (бинарн.) | & | L–R | Побитовое AND |
^ | L–R | Побитовое XOR (исключающее OR) | |
| | L–R | Побитовое OR | |
&& | L–R | Логическое AND | |
|| | L–R | Логическое OR | |
= | R–L | Простое присваивание | |
*= | Умножить и присвоить | ||
/= | Разделить и присвоить | ||
%= | Взять остаток и присвоить | ||
+= | Сложить и присвоить | ||
-= | Вычесть и присвоить | ||
&= | Побитовое AND и присвоить | ||
^= | Побитовое XOR и присвоить | ||
|= | Побитовое OR и присвоить | ||
<<= | Левый сдвиг и присвоить | ||
>>= | Правый сдвиг и присвоить | ||
16 (тернарн.) | ?: | R–L | Условная операция |
throw | L–R | Генерация исключения | |
, | L–R | Последовательное выполнение (комбинация выражений в одно, операция “запятая”) |
Дата добавления: 2015-11-16; просмотров: 55 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
О структуре программы | | | Напомним основные (предопределенные целиком или базовые, фундаментальные)типы данных |