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

Глава 2

Выражения и операторы

Арифметические операции.

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

Для осуществления манипуляций с данными C++ располагает широким набором операций. Операции представляют собой некоторое действие, выполняемое над одним (унарная) или несколькими операндами (бинарная операция), результатом которого является возвращаемое значение. К базовым арифметическим операциям можно отнести операции сложения (+), вычитания (-), умножения (*), деления (/) и взятия по модулю (%), то есть вычисления остатка от деления левого операнда на правый.

Для эффективного использования возвращаемого операциями значения предназначен оператор присваивания (=) и его модификации: сложение с присваиванием (+=). вычитание с присваиванием (-=), умножение с присваиванием (*=). деление с присваиванием (/=), модуль с присваиванием (%=) и ряд других, которые будут рассмотрены позже.

В приведенном ниже листинге представлены примеры некоторых операций.

iinclude <iostream.h> int main()

{

int а=0,b=4,с=90;

char z = '\n';

a = b; // a=4

cout « a « z;

a = b + c + с + Ь; // a=4+90+90+4=188

cout « a « z;

a = b - 2; // a=2

cout « a « z;

а = Ь * 3; // а=4*3=12

cout « а « z;

а = с / (Ь + 6) ; // а=90/(4+6)=9

cout « а « z;

cout « а%2 « z; // 9%2=1

а += Ь; // а=а+b=9+4=13

а *= с - 50; // а=13*(90-50)=520

a -= 38; // а=520-38=482

cout « a « z;

а %= 8; // а=482%8=2

cout « а « z;

return 0;

}

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

В результате работы программа выведет столбец из цифр: 4 188 2 12 9 1 482 2

На практике также довольно широко используется пустой оператор:

;

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

Понятие выражения

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

выражение;

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

Приведем примеры предложений языка:

х = 3 * (y + 2.48);

у = My_Func(dev, 9, i);

Операторы инкремента и декремента

Как и в Ассемблере, в C++ имеется эффективное средство увеличения и уменьшения значения операнда на единицу — унарные операторы инкремента (++) и декремента (--).

Унарные операторы инкремента/декремента преобразуются компилятором в машинный код однозначно и на языке Ассемблера могут выглядеть так:

инкремент: INC N

декремент: DEC N

где N может быть либо регистром процессора, либо содержимым ячейки памяти.

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

Понятие префикса и постфикса имеет смысл только в выражениях с присваиванием:

х = y++; // постфикс

index = --current; // префикс

count++; // унарная операция;

// то же, что ++count; abc--; // то же, что --abc;

Здесь переменная у сначала присваивается переменной х, а затем увеличивается на единицу. Переменная current сначала уменьшается на единицу, после чего результат присваивается переменной index.

Соседние файлы в папке ЯзыкС++Глушаков