Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
39
Добавлен:
16.04.2013
Размер:
84.48 Кб
Скачать

преобразование с проверкой static_cast<type>(expr) во время компиляции преобразование без проверки reinterpret_cast<type>(expr) константное преобразование const_cast<type>(expr) ____________________________________________________________________ sizeob размер объекта в байтах sizeof expr справа налево

размер типа в байтах sizeof (type) + + префиксный инкремент + + lvalue

(j = + + i; равнозначно i = i+1; j=i;)   префиксный декремент   lvalue

(j =   i; равнозначно i = i1; j=i;)  дополнение  lvalue

(поразрядное логическое НЕ) ! логическое НЕ ! ezpr  унарный минус  expr + унарный плюс + expr & адрес & lvalue * разименование  expr new - создать (выделить память) new type

- создать (выделить память и

проинициализировать) new type (expr_lst)

(например new int(99))

- размещает массив new type [expr]

(например new char [100])

- создать (разместить) new (expr_lst) type

для классов

- создать (разместить и

инициализировать) new (exp_lst) type (expr_lst)

для классов

delete Уничтожить (освободить память) delete pointer

Уничтожить массив delete [ ] pointer type Приведение типа (type) expr

(например (int) i) ____________________________________________________________________

справа налево

выбор компонента object .* pointer

выбор компонента pointer  pointer ____________________________________________________________________

слева направо

 умножение expr expr

 деление expr  expr

% остаток от деления

(деление по модулю) expr % expr

___________________________________________________________________

cлева направо

+ сложение expr + expr

 вычитание expr  expr ____________________________________________________________________ слева направо

<< сдвиг влево expr << expr

>> сдвиг вправо expr >> expr ____________________________________________________________________ слева направо

< меньше expr < expr

<= меньше или равно expr <= expr

> больше expr > expr

>= больше или равно expr >= expr ____________________________________________________________________ слева направо

= = равно expr = = expr

! = не равно expr ! = expr

& побитовое И (AND) expr & expr ____________________________________________________________________ слева направо

^ побитовое исключающее ИЛИ (OR) expr ^ expr

____________________________________________________________________ слева направо

| побитовое ИЛИ expr | expr ____________________________________________________________________

слева направо

&& логическое И expr && expr

____________________________________________________________________ слева направо

| | логическое ИЛИ expr | | expr ____________________________________________________________________

? : условное выражение expr ? expr : expr справа налево

____________________________________________________________________ справа налево

= простое присваивание lvalue = expr

* = умножение и присваивание lvalue *= expr

/ = деление и присваивание lvalue / = expr

% = остаток и присваивание lvalue % = expr

+ = сложение и присваивание lvalue + = expr

 = вычитание и присваивание lvalue  = expr

<< = сдвиг влево и присваивание lvalue << = expr

>> = сдвиг вправо и присваивание lvalue >> = expr

& = И и присваивание lvalue & = expr

| = ИЛИ и присваивание lvalue | = expr

^ = исключающее ИЛИ и присваивание lvalue ^ = expr

____________________________________________________________________

____________________________________________________________________ справа налево throw генерация исключения throw expr ____________________________________________________________________ слева направо

, запятая (последовательность) expr , expr ____________________________________________________________________

Рассмотрим операции для предопределенных типов данных. Отметим два правила :

  1. Порядок вычисления подвыражений внутри выражений не определен.

Например,

int i = 1;

v [i] = i + + ;

может быть v [1] = 1 или v [2] =1, либо еще что-нибудь.

  1. Применяйте круглые скобки, когда сомневаетесь в приоритетах операций или порядке вы

  2. числений.

Операторы сравнения и равенства

> = , < , < = , > , = = , ! =

Результат true, если условие выполняется, иначе false. Старое соглашение false – 0, а true – не ноль выполняется

Пример if (A > = 10)

Логические операторы

! , && , | |

expr1 expr2 ! expr1 expr1 && expr2 expr1 | | expr2

0 0 1 0 0

1 0 0 0 1

0 1 1 0 1

1 1 0 1 1

Пример. 0 && i + +; / / увеличения i не будет.

Побитовые логические операции (поразрядные) применяются к каждому биту целочисленных данных.

Бит expr1 Бит expr2 ~a a & b a ^ b a | b

a b

0 0 1 0 0 0

0 1 1 0 1 1

1 0 0 0 1 1

1 1 0 1 0 1

Например (0 1 0 1) | (0 1 1 0)  (0 1 1 1)

5 | 6  7

Операторы сдвига

<< Побитовый сдвиг влево

expr1 << expr2

Выражение expr1 (его результат) сдвигается влево на число бит, которые вычисляются выражением expr2.

Например, i = 7; i << 2; // i = 28.

>> Побитовый сдвиг вправо работает аналогично <<, только expr1 сдвигается вправо, а не влево.

Например, i = 20; i >> 2; // i = 5.

Условное выражение

expr1 ? expr2 : expr3

Условие вычисляется первым

Если условие = = TRUE, вычисляется expr2, иначе вычисляется expr3.

Например, x = (y < z) ? y : z ;

y z x

5 8 5

10 2 2

Оператор присваивания (инструкция)

a опер = b;  a = a опер b;

Соседние файлы в папке Тельминов (мб)