Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Глава 3. Выполнение математических операций 41




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

Унарными называются те операторы, которые имеют только один аргумент, на- пример

Унарными математическими операторами являются + ,                       и --. Рассмотрим не- которые из них:

int   = 10; int var2 = -varl;

Здесь в последнем выражении используется унарный оператор "-" .

Оператор "минус" изменяет знак своего аргумента (в примере это varl ) на проти- воположный. Положительные числа становятся отрицательными и наоборот. Опера- тор "плюс" знака аргумента не изменяет и фактически вообще ни на что не влияет.

Операторы ++ и вы можете увидеть впервые. Они увеличивают или уменьшают на 1 значение аргумента и поэтому называются операторами инкремента и декремен- та (от англ. increment (увеличивать) и decrement (уменьшать). — Прим. перев.). дейст- вительным переменным их применение недопустимо. После выполнения приведен- ного ниже фрагмента значение переменной будет равно

int var = 10; // Инициализация переменной

var++; // Ее         значение переменной равно

Операторы инкремента и декремента могут находиться либо перед аргументом (префиксная форма), либо после него (постфиксная форма). В зависимости от спосо- ба записи, выполнение операторов инкремента и декремента имеет свои особенности. Рассмотрим оператор инкремента (принципы работы оператора декремента те же).

Предположим, что переменная п имеет значение 5. Оба способа применения к п оператора инкремента (++п и п++) приведут к результату 6. Разница между ними состоит в том, что значение п в выражении ++п равно б, в то время как в выражении с постфиксной формой записи оно равно 5. Это можно проиллюстрировать следую- щим примером:

//объявляем три целые переменные

int n2, пЗ;

 

5;

n2 = ++nl; //обе переменные - nl и п2 - получают значение б

nl = 5;

пЗ = nl + ; // nl принимает значение а пЗ - 5

Другими словами, переменной г.2 присваивается уже увеличенное префиксным оператором инкремента значение nl, тогда как переменной передается еще не уве- личенное постфиксным оператором значение nl .

 

Операторы присвоения являются бинарными, изменяющими  значения своих ле- вых аргументов. Обыкновенный оператор  присвоения                                                                              абсолютно необходим во всех языках программирования. Этот оператор сохраняет значение правого аргумента

 

42                                                Часть I. Первое знакомство с C++


в левом. Однако причуды авторов языка привели к появлению и других операторов присвоения.

Создатели C++ заметили, что присвоение часто имеет вид

variable variable # constant

Здесь  представляет собой какой-то бинарный оператор. Следовательно, чтобы увеличить целую переменную на два, программист может написать:

nVariabl e = nVariabl e + 2;

Из этой записи следует, что к значению переменной nVariable добавляется двой- ка и результат снова сохраняется в nVariable.

Использование в левой и правой части выражения одной и той же пере- менной весьма распространенное явление в программировании.

 

 

Поскольку одна и та же переменная находится по обе стороны знака равенства, было решено просто добавить оператор, используемый при вычислении, к знаку при- своения. В таких специфических операторах присвоения допускается использование всех бинарных операторов. Поэтому указанное выше выражение можно сократить до

nVariable +=

Смысл этой записи таков: "значение переменной nVariable увеличено на 2".

 

Почему так важен оператор инкремента

Разработчики        заметили, что программисты прибавляют чаще, чем любую другую константу. Учитывая это, в язык была добавлена соответствующая конст- рукция.

Кроме того, большинство процессоров способны выполнять команды инкремента быстрее, чем команды сложения. Учитывая мощность микропроцессоров, которые использовались во  время  создания подобное нововведение было действи- тельно

 

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

 

 

Глава 3. Выполнение математических операций                                  43


Глава4


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 182; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.017 с.)
Главная | Случайная страница | Обратная связь