Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
A.doc
Скачиваний:
36
Добавлен:
09.04.2015
Размер:
5.6 Mб
Скачать

62 Глава 2

Использование управляющих последовательностей

Ниже приведен текст программы, использующей некоторые управляющие после- довательности из предыдущей таблицы:

Если вы скомпилируете и запустите эту программу, то увидите следующий вывод:

Описание полученных результатов

Первая строка в main () определяет переменную newline и инициализирует ее символом новой строки, представленным в виде управляющей последовательности. Затем вы можете применять newline вместо endl из стандартной библиотеки.

После отправки newline на cout выводится строка, которая применяет управля- ющие последовательности для представления символов двойной (\ ") и одиночной (\ *) кавычек. Вы не обязаны использовать управляющую последовательность для оди- ночной кавычки, потому что строка ограничена двойными кавычками, и компилятор воспринимает одиночную кавычку внутри нее так, как она есть, а не в качестве разде- лителя. Однако внутри этой строки для представления двойной кавычки применять управляющую последовательность необходимо. Строка начинается с управляющей последовательности — символа новой строки, за которым идет управляющая последо- вательность символа табуляции, поэтому выходная строка сдвигается на расстояние табуляции вправо. Строка также заканчивается двумя экземплярами управляющих последовательностей, выдающих звуковой сигнал, поэтому вы можете услышать два подряд звуковых сигнала из динамика вашего компьютера.

Вычисления в С++

Здесь вы действительно начнете делать что-то с введенными данными. Теперь вы знаете, как организовать простой ввод и вывод; теперь обратимся к тому, что посре- дине — той части программы С++, которая занята обработкой данных. Все аспекты С++, связанные с вычислениями, достаточно интуитивно понятны, так что изучение этой темы пойдет у вас, как по маслу.

Данные, переменные и вычисления 63

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

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

Оператор присваивания позволяет вычислить значение выражения, стоящего справа от знака равенства — в данном случае сумму parti, part2 и part3 — и сохра- нить результат в переменной, указанной слева от знака равенства — в данном случае, переменной whole. В показанном операторе whole — просто сумма частей, и ничего более.

Обратите внимание, что оператор, как всегда, завершается точкой с запятой. Вы можете также писать повторяющиеся присваивания, как здесь:

Это эквивалентно присваиванию значения 2 переменной b с последующим при- сваиванием значения b переменной а. В результате обе переменных получают значе- ние 2.

Понятия lvalue и rvalue

lvalue (left value — левое значение) — это нечто такое, что ссылается на адрес памя- ти и называется так потому, что любое выражение, дающее в результате lvalue, может быть поставлено слева от знака равенства в операторе присваивания. Большинство переменных являются lvalue, потому что они специфицируют место в памяти. Однако, как вы вскоре убедитесь, существуют переменные, которые не являются lval- ue, и не могут появляться слева в операторах присваивания, потому что их значения определены как константные.

Переменные а и Ь, которые вы видели в предыдущем разделе, являются lvalue, в то время как результат вычисления выражения а+b не может быть таковым, посколь- ку для этого результата не определено место в памяти, где он должен быть сохранен. Результат выражения, не являющегося lvalue, называют rvalue (right value — правое значение).

Термин lvalue еще не раз появится в этой книге— иногда там, где вы менее всего будете его ожидать, поэтому запомните его определение.

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

Базовые арифметические операции, которые предоставлены в ваше распоряже- ние — сложение, вычитание, умножение и деление — обозначаются символами +, -, * и / соответственно. В основном они работают так, как и можно было ожидать, за ис- ключением деления, в поведении которого, как вы увидите, существуют некоторые отклонения, когда оно применяется к целым или константам. Вы можете писать опе- раторы вроде следующего:

Здесь будет вычислено произведение hours и rate, затем из полученного ре- зультата вычтено deductions. Операции умножения и деления выполняются перед операциями сложения и вычитания, чего и следовало ожидать. Позднее в этой гла-