Читать «Полный справочник по С++» онлайн - страница 27

Герберт Шилдт

Управляющие символьные константы

Практически все символы можно вывести на печать, заключив их в одиночные кавычки. Однако некоторые символы, например, символ перехода на новую строку, невозможно ввести в строку с клавиатуры. Для этого в языке C/C++ предусмотрены специальные управляющие символьные константы (backslash character constants), указанные в табл. 2.2. Они называются эскейп-последовательностями (escape sequences). Для того чтобы гарантировать машинонезависимость, необходимо использовать не ASCII-коды, эквивалентные управляющим символьным константам, а именно эскейп-последовательности.

Таблица 2.2. Управляющие символьные константы
КодЗначение
Пробел
\fПрогон бумаги
\пНовая строка
Возврат каретки
\tГоризонтальная табуляция
\"Двойная кавычка
VОдинарная кавычка
\0Нуль
\\Обратная косая черта
\vВертикальная табуляция
Звуковой сигнал
\7Знак вопроса
\NВосьмеричная константа N
\xNШестнадцатеричная константа N

Программа, приведенная ниже, выполняет переход на новую строку, выводит символ табуляции, а затем печатает строку “Проверка вывода”.

#include <stdio.h> int main(void)

{

printf(*\n\tnpoBepKa вывода.");

return 0;

}

В языке C/C++ предусмотрено большое количество операторов. В этих языках операторам уделяется гораздо больше внимания, чем в большинстве других языков. Операторы разделяются на четыре основные группы: арифметические (arithmetic), сравнения (relational), логические (logical) и побитовые (bitwise). Кроме того, для конкретных целей предусмотрено еще несколько специальных операторов.

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

Оператор присваивания можно использовать в любом корректном выражении. В языке C/C++ (в отличие от многих языков программирования, включая Pascal, BASIC и FORTRAN) оператор присваивания не считается особенным. Общий вид оператора присваивания выглядит следующим образом. имя_переменной = выражение;

Здесь выражение может состоять как из отдельной константы, так и комбинации сложных операторов. В качестве оператора присваивания в языке C/C++ используется знак равенства (отличие от языков Pascal и Modula-2, в которых оператор присваивания обозначается символами : =). Цель (target), или левая часть оператора присваивания, должна быть либо переменной, либо указателем, но не функцией или константой.

Часто в книгах о языке C/C++ и в сообщениях компилятора встречаются два термина: lvalue и rvalue. Термин lvalue означает любой объект, который может стоять в левой части оператора присваивания. С практической точки зрения термин lvalue относится к переменным. Термином rvalue называют выражение, стоящее в правой части оператора присваивания, точнее говоря, значение этого выражения.

Преобразования типов в операторе присваивания

Когда в выражении смешиваются переменные разных типов, необходимо выполнить преобразование типов (type conversion). Для оператора присваивания правило преобразования типов формулируется просто: значение правой части (rvalue) преобразовывается к типу левой части (lvalue). Рассмотрим конкретный пример.