Литералом называется запись в программе, представляющая собой фиксированное значение. Т.е. это какое-то значение, жёстко заданное в исходном коде программы.
В C++ существует пять типов литералов:
- Целочисленный литерал – последовательность цифр, (возможно со знаком '-'). Если литерал начинается 0, то он воспринимается компилятором как восьмеричное число. В этом случае не допускаются цифры 8 и 9. Целочисленный литерал, начинающийся с 0х или 0Х, воспринимается как шестнадцатеричное целое и может включать символы от А или а, до F или f. Например, число 213 может быть записано тремя способами:
213 – традиционная запись в десятичной системе счисления,
0325 – запись в восьмеричной системе счисления,
0xD5 – запись в шестнадцатеричной системе счисления.
- Вещественный литерал используется для представления вещественных значений. При этом различают стандартную (-214.5) и научную нотации (-2.415e+2).
- Логический литерал служит для записи логических значений, которых в языке C++ всего два: истина (true) и ложь (false).
- Символьный литерал заключается в апострофы ипредставляет собой один символ из таблицы ASCII. Символьный литерал имеет несколько форматов представления: обычный, восьмеричный и шестнадцатеричный. Например, буква Z может быть представлена литералом 'Z', а также литералами '\132' и '\х5А'. Последние 2 значения – код символа Z из таблицы ASCII, записанный в восьмеричном и шестнадцатеричном виде. Т.к. таблица ASCII использует для хранения символов 1 байт, то допустимый диапазон для обозначения символьных литералов в восьмеричном представлении ограничен 377, а в шестнадцатеричном представлении – 0xFF. Некоторые спецсимволы можно представлять в особом формате, начинающемся со знака обратного слэша (backslash) '\':
\b backspace, удаление символа слева
\f перевод страницы
\n перевод строки
\r возврат каретки
\t горизонтальная табуляция
\v вертикальная табуляция
\" двойная кавычка
\' апостроф
\\ обратный слэш
\0 нулевой байт
\а сигнал
\? знак вопроса
Такой способ записи также называется escape-последовательностью.
- Строковый литерал представляет собой последовательность символов, заключенную в двойные кавычки. Последовательность заканчивается нулевым байтом, хотя это и не указывается явно. Например, строка "Hello" содержит не 5, а 6 символов:
'H'
'e'
'l'
'l'
'o'
'\0'
Нулевой байт добавляется в такие строки автоматически в качестве символа конца строки (не путать с переводом строки). Это необходимо потому, что традиционно размер строки в C++ не хранится вместе с ней и, следовательно, неизвестен.
Например, чтобы записать в C++ текст вида
Здравствуйте!
Введите свое имя в поле "Логин".
Нужно использовать следующий строковый литерал:
"Здравствуйте!\nВведите свое имя в поле \"Логин\"."