Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Глава 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; Нарушение авторского права страницы