Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование_С++_ч_1.doc
Скачиваний:
15
Добавлен:
22.11.2018
Размер:
324.61 Кб
Скачать

Операции

В соответствии с количеством операндов, которые используются в операциях, они делятся на унарные, бинарные и тернарную операции.

В следующей таблице приводятся основные операции в порядке убывания приоритетов (операции с разными приоритетами разделены чертой).

Основные операции С++

Операция

Описание

1

2

Унарные операции

++

увеличение на 1

--

уменьшение на 1

sizeof

размер данного в байтах

~

поразрядное отрицание

!

логическое отрицание

-

унарный минус

+

унарный плюс

&

взятие адреса

Продолжение таблицы

1

2

*

разадресация

new

выделение памяти

delete

освобождение памяти

(type)

преобразование типов

Бинарные операции и тернарная операция

*

умножение

/

деление

%

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

+

сложение

-

вычитание

<<

сдвиг влево

>>

сдвиг вправо

<

меньше

<=

меньше или равно

>

больше

>=

больше или равно

==

равно

!=

не равно

&

поразрядная конъюнкция (и)

^

поразрядное исключающее или

|

поразрядная дизъюнкция (или)

&&

логическое и

||

логическое или

? :

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

=

присваивание

Окончание таблицы

1

2

*=

умножение с присваиванием

/=

деление с присваиванием

%=

остаток от деления с присваиванием

+=

сложение с присваиванием

-=

вычитание с присваиванием

<<=

сдвиг влево с присваиванием

>>=

сдвиг вправо с присваиванием

&=

поразрядное и с присваиванием

|=

поразрядное или с присваиванием

=

поразрядное исключающее или с присваиванием

,

последовательное выполнение

Примеры операций

Операции увеличения и уменьшения на единицу (++ и --) имеют две формы записи: префиксную (операция записывается перед операндом) и постфиксную (операция записывается после операнда). В префиксной форме сначала изменяется операнд, а затем его значение становится результирующим значением выражения; в постфиксной форме значением выражения является исходное значение операнда, после чего он изменяется:

...

int x = 3, y = 3;

printf ("Значение префиксного выражения: % d \ n", ++ x);

printf ("Значение постфиксного выражения: % d \ n", y ++ );

...

На экране:

Результат префиксного значения: 4

Результат префиксного значения: 3

Операция определения размера sizeof предназначена для вычисления размера объекта или типа в байтах и имеет две формы:

sizeof выражение

sizeof (тип)

Операция sizeof (float) вернет значение 4 (длина в байтах типа float).

Операция sizeof (х + 0.1) вернет значение 8 (если х описана как float) − эта величина получается потому, что вещественные константы по умолчанию описываются как double, т. е. имеют длину 6 байтов.

Операции присваивания могут использоваться в программах как законченные операции. В сложных операциях присваивания (+=, -= и т.д.) при вычислении значения в правой части используется значение из левой части:

...

int a = 3, b = 5, c =4;

c = b + c;

a += b; // это более компактная запись a = a + b

...

Условная операция ? : − это тернарная операция. Ее формат:

операнд_1 ? операнд_2 : операнд_3

Первый операнд оценивается с точки зрения эквивалентности его нулю (операнд, равный нулю, оценивается как false, не равный нулю − как true). Если результат вычисления операнда 1 равен true, то результатом условной операции будет значение операнда 2, иначе − операнда 3. Условная операция является сокращенной формой оператора if.

Пример

int a = 11, b = 4, max;

max = (b > a)? b : a;

printf ("Наибольшее число: % d", max);

На экране будет напечатано:

Наибольшее число: 11