- •1.1. Алфавит языка
- •1.2. Идентификаторы
- •1.3. Ключевые слова
- •1.4. Знаки операций
- •1.5. Константы
- •1.6. Комментарии
- •2.1. Стадии прохождения программы
- •3.1. Концепция типа данных
- •3.2. Основные типы данных
- •3.3. Переменные
- •4. Операции и выражения
- •4.1. Выражение и его интерпретация
- •4.2. Арифметические операции
- •4.3. Операции отношения
- •4.4. Логические операции
- •4.5. Операции с разрядами
- •4.6. Операции сдвига
- •4.7. Операция условия
- •4.8. Операция присваивания
- •4.9. Операция sizeof
- •4.10. Преобразование типов
- •4.11. Порядок выполнения операций
- •5. Форматный ввод и вывод данных
- •5.1. Форматный вывод: функция printf()
- •5.2. Форматный ввод: функция scanf()
- •Содержание
1.4. Знаки операций
Знак операции – это один или более символов, определяющих действие над операндами. Внутри знака операции пробелы не допускаются. Операции делятся на унарные, бинарные и тернарную по количеству участвующих в них операндов. Один и тот же знак может интерпретироваться по-разному в зависимости от контекста. Все знаки операций за исключением [ ], ( ) и ?: представляют собой отдельные лексемы.
Большинство стандартных операций может быть переопределено (перегружено).
1.5. Константы
Константами называют неизменяемые величины. Различаются целые, вещественные, символьные и строковые константы. Компилятор, выделив константу в качестве лексемы, относит ее к одному из типов по ее внешнему виду.
Форматы констант, соответствующие каждому типу, приведены в таблице 2.
Допустимые диапазоны значений целых и вещественных констант приведены в таблице 3.
Таблица 2. Константы в языке С++
Константа |
Формат |
Примеры |
Целая |
Десятичный: последовательность десятичных цифр, начинающаяся не с нуля, если это не число нуль |
8, 0, 199226
|
Восьмеричный: нуль, за которым следуют восьмеричные цифры (0,1,2,3,4,5,6,7) |
01, 020, 07155 |
|
Шестнадцатеричный: 0х или 0Х, за которым следуют шестнадцатеричные цифры (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) |
0xA, 0x1B8, 0X00FF |
|
Вещественная |
Десятичный: [цифры].[цифры] Могут быть опущены либо целая часть, либо дробная, но не обе сразу. |
5.7, .001, 35.
|
Экспоненциальный: [цифры][.][цифры]{E|e}[+|–][цифры] Могут быть опущены либо целая часть, либо дробная, но не обе сразу. Если указаны обе части, символ точки обязателен. |
0.2E6, .11e–3, 5E10
|
|
Символьная |
Один или два символа, заключенных в апострофы |
'A', 'ю', '*', 'db', '\0', '\n', '\012', '\x07\x07' |
Строковая
|
Последовательность символов, заключенная в кавычки |
"Здесь был Vasia", "\tЗначение r=\0xF5\n" |
Если требуется сформировать отрицательную целую или вещественную константу, то перед константой ставится знак унарной операции изменения знака (–), например, –218, –5.8.
Вещественная константа в экспоненциальном формате представляется в виде мантиссы и порядка. Мантисса записывается слева от знака экспоненты (E или e), порядок справа от знака. Значение константы определяется как произведение мантиссы и возведенного в указанную в порядке степень числа 10. Обратите внимание, что пробелы внутри числа не допускаются, а для отделения целой части от дробной используется не запятая, а точка.
Символьные константы, состоящие из одного символа, занимают в памяти один байт и имеют стандартный тип char. Двухсимвольные константы занимают два байта и имеют тип int.
Символ обратной косой черты используется для представления:
кодов, не имеющих графического изображения (например, \n – перевод курсора в начало следующей строки);
символов апострофа ( ' ), обратной косой черты ( \ ), знака вопроса ( ? ) и кавычки ( " );
любого символа с помощью его 16-ричного или 8-ричного кода, например, \073, \0xF5.
Последовательности символов, начинающиеся с обратной косой черты, называют управляющими, или escape-последовательностями. Управляющая последовательность интерпретируется как одиночный символ.
Строковые константы, отделенные в программе только пробельными символами, при компиляции объединяются в одну. Длинную строковую константу можно разместить на нескольких строках, используя в качестве знака переноса обратную косую черту, за которой следует перевод строки. Например, строка
"Никто не доволен своей внешностью, \
но все довольны своим умом"
полностью эквивалентна строке
"Никто не доволен своей внешностью, но все довольны своим умом"
В конец каждого строкового литерала компилятором добавляется нулевой символ, представляемый управляющей последовательностью \0.
