logo
volkov / C++ / Бьерн Страуструп-Справочное руководство по С++

R.2.5.2 Символьные константы

Символьной константой является один или несколько символов, заключенные

в одиночные кавычки, например 'x'. Константа из одного символа имеет

тип char. Значение константы из одного символа есть порядковый номер

символа в таблице кодировки символов на данной машине. Символьные

константы из нескольких символов имеют тип int. Значение такой

константы зависит от реализации.

Некоторые символы, не имеющие графического представления, как

одиночная кавычка ',двойная кавычка ", знак вопроса ?, обратная

дробная черта \, можно представлять комбинацией символов (начинающейся

с \) в соответствии с приводимой ниже таблицей:

конец строки NL (LF) \n

горизонтальная табуляция HT \t

вертикальная табуляция VT \v

шаг назад BS \b

возврат каретки CR \r

перевод формата (авторегистр) FF \f

сигнал BEL \a

обратная дробная черта \ \\

знак вопроса ? \?

одиночная кавычка ' \'

двойная кавычка " \"

восьмеричное число ooo \ooo

шестнадцатеричное число hhh \xhhh

Если за обратной дробной чертой следует символ, отличный от

перечисленных, результат неопределен.

Комбинация \ooo состоит из обратной дробной черты, а которой

следуют одна, две или три восьмеричные цифры. Считается, что они

определяют значение искомого символа. Комбинация \xhhh состоит из

из обратной дробной черты, за которой следует x, а за ним, в свою

очередь, следует последовательность шестнадцатеричных цифр.

Считается, что она задает значение искомого символа. Нет ограничения

на длину этой последовательности шестнадцатеричных цифр.

Последовательность восьмеричных или шестнадцатеричных цифр

оканчивается, когда встречается первый символ, который не есть

восьмеричная или шестнадцатеричная цифра соответственно. Если

значение символьной константы превосходит максимальное из char,

то оно определяется реализацией.

Символьная константа, которой непосредственно предшествует

буква L, является широкой символьной константой, например, L'ab'.

Такие константы имеют тип wchar_t, являющийся целочисленным типом

($$R.3.6.1), определенном в стандартном заголовочном файле

<stddef.h>. Широкие символы предназначены для такого набора

символов, где значение символа не помещается в один байт.