Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные_работы_1-7.doc
Скачиваний:
25
Добавлен:
16.11.2019
Размер:
2.11 Mб
Скачать

2.10Операции

В таблице 1.5 приложения I приведен список основных операций, определенных в языке C++, в соответствии с их приоритетами (по убыванию приоритетов, операции с разными приоритетами разделены чертой). В соответствии с количеством операндов, которые используются в операциях, они делятся на унарные (один операнд), бинарные (два операнда) и тернарную (три операнда).

Пробелы между символами внутри операции не допускаются.

Рассмотрим основные операции подробнее.

2.10.1Операции увеличения и уменьшения на 1 (++ и - -)

Эти операции, называемые также инкрементом ++ и декрементом --, имеют две формы записи – префиксную, когда операция записывается перед операндом, и постфиксную. В префиксной форме сначала изменяется операнд, а затем его значение становится результи­рующим значением выражения, а в постфиксной форме значением выражения является исходное значение операнда, после чего он изменяется. Например:

int x=3,y=3;

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

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

printf(RUS("Значение х после приращения: %d\n"), x);

printf(RUS("Значение у после приращения: %d\n"), y);

Результат работы программы:

Значение префиксного выражения: 4

Значение постфиксного выражения: 3

Значение х после приращения: 4 .

Значение у после приращения: 4

Если непонятно, выполните программу в C++Builder!

Операндом операции инкремента в общем случае является так называемое L-значение (L-value). Так обозначается любое выражение, адресующее некоторый участок памяти, в который можно занести значение. Название произошло от операции присваивания, поскольку именно ее левая (Left) часть определяет, в какую область памяти будет занесен результат операции. Переменная является частным случаем L-значения.

2.10.2Операция определения размера sizeof

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

sizeof выражение

sizeof ( тип )

Пример:

float x = 1;

cout << "sizeof (float) :" << sizeof (float):

cout << "\nsizeof x :" << sizeof x;

cout <<"\nsizeof (x + 1.0) :" << sizeof (x + 1.0);

Результат работы программы:

sizeof (float) : 4

sizeof x : 4

sizeof (x + 1.0) : 8

Если непонятно, выполните программу в C++Builder!

Последний результат связан с тем, что вещественные константы по умолчанию имеют тип double, к которому, как к более длинному, приводится тип переменной х и всего выражения. Скобки необходимы для того, чтобы выражение, стоящее в них, вычислялось раньше операции приведения типа, имеющей больший приоритет, чем сложение.

2.10.3Операции отрицания (-, ! и ~).

Арифметическое отрицание (унарный минус -) изменяет знак операнда целого или вещественного типа на противоположный. Логическое отрицание (!) дает в результате значение 0, если операнд есть истина (не нуль), и значение 1, если операнд равен нулю. Операнд должен быть целого или вещественного типа, а может иметь также тип указатель. Поразрядное отрицание (~), часто называемое побитовым, инвертирует каждый разряд в двоичном представлении целочисленного операнда.