
- •Лекция 2
- •Базовые элементы языка программирования
- •Категории лексем
- •Идентификаторы
- •Ключевые слова
- •Зарезервированные идентификаторы
- •Стандартные идентификаторы
- •Идентификатор пользователя
- •Константы
- •Литералы
- •Целые константы
- •Вещественные константы
- •Булевские (логические) константы
- •Символьные константы
- •Строковые константы
- •Именованные типизированные константы
- •Перечислимые константы
- •Препроцессорные константы
- •Знаки операций
- •Знаки пунктуации
- •Разделители
- •Пробельные разделители
- •В результате изучения материала лекции необходимо знать
Строковые константы
Строковый литерал – это последовательность символов, заключенная в двойные кавычки. Строка в С++ соответствует типу данных «массив символов» и может содержать любые символы алфавита языка, например: "A", "строка", "string", "\n". Строки завершаются символом '\0' (компилятор автоматически добавляет '\0').
При наличии символа L перед открывающей кавычкой, говорят о широкой строковой константе: L"A", L"строка", L"string", L"\n".
Пустая строка определяется как "" и сохраняется как один символ '\0', т.е. имеет длину, равную 1. Cимвольная константа и строка из одного символа не одно и то же: 'x' не есть "x". Первое – это один символ, использованный для представления числового значения буквы х. Второе – строка, содержащая букву х и '\0' (имеет длину 2). Поэтому при создании строки (как массива символов) необходимо предусматривать дополнительный байт на символ '\0', а при инициализации такой строки в число инициализирующих элементов включать в качестве завершающего символа '\0'.
Примеры строковых литералов:
"5" // строковый литерал из символов '5' и '\0'
"symbol" // строковый литерал из семи символов, включая символ '\0'
"\'" // строковый литерал из апострофа и завершающего нуля
"a\tb\n" //строковые литералы могут содержать управляющие последовательности; // если этот литерал записан в операторе вывода, то на экран выводится: буква a; //несколько пробелов, соответствующих значению символа табуляции; //буква b. После этого происходит переход на следующую строку.
Компилятор объединяет две строковые константы, разделенные символами – разделителями и следующие одна за другой:
char *s="Mi" "nsk";
cout <<s << endl; //выведет на экран: Minsk
char *longStr = "Это длинная строка, которую"
" мы разбили на 3 строки."
" Компилятор сам склеит строки."
Длинную строковую константу можно разместить на нескольких строках, используя в качестве знака переноса обратную косую черту. Например, строка:
char *longStr1= "Никто не доволен своей \
внешностью, но все довольны \
своим умом"
эквивалентна сроке:
"Никто не доволен своей внешностью, но все довольны своим умом".
Хотя длина строки в С++ практически не ограничена, текст программы не должен выходить за пределы ширины экрана для того, чтобы было удобно читать и распечатывать программу.
Именованные типизированные константы
Именованные константы позволяют сделать запись более наглядной. Идентификаторы именованных констант рекомендуется записывать прописными буквами.
В С++ используются типизированные именованные константы:
для задания параметров, управляющих: - размером структур данных (например, массивов: const int N=10; int mas[N];), - числом итераций в циклах (const int K=10; for (int i=1; i<K; i++) ….)
для задания других значений, изменение которых может потребоваться при отладке или модернизации программы;
для обозначения часто встречающихся в программе постоянных величин;
при использовании констант, имеющих общеупотребительные обозначения.
Например:
const int K = 40;
int M[K][K];
float A[K], B[K][K];