Символьные константы C++
Символьные константы один или несколько членов базовый символ источника - установка, кодировка, в котором написана программа, заключенные в одиночные кавычки (').Они используются для представления символов в базовый набор символов выполнения, кодировка на компьютер, на котором выполняется программа.
Только для систем Microsoft
Для компилятора microsoft C/C++, знак источника и выполнения - наборы обоих ASCII.
Базовый символ источника - набор состоит из 96 символов: пробел; управляющие символы, представляющие горизонтальную tab вертикальную tab, преобразование формата и перевода строки. следующие 91 и знак:
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
_} {# ([]) <>%: ?;. *+-/^&|~! = " \" '
Базовый символ выполнения - установка состоит из знаков в базовом наборе символов источника, а также управляющих символов, представляющих предупреждение, возврат, возврат каретки и null.
ЭЛЕМЕНТ, относящийся Майкрософт
3 Типа констант символов:
Обычные символьные константы
Константы Multicharacter
Константы расширенных символов
Примечание |
---|
Используйте константы расширенных символов вместо констант multicharacter для обеспечения переносимости. |
Символьные константы определены как один или несколько знаков, заключенные в одиночные кавычки.Примеры.
char ch = 'x'; // Specify normal character constant.
int mbch = 'ab'; // Specify system-dependent
// multicharacter constant.
wchar_t wcch = L'ab'; // Specify wide-character constant.
Обратите внимание, что mbch type int.Если был объявлен как тип charвторой байт, не будет сохранять.Константа multicharacter содержательных содержит 4 символов; определение более 4 формирует сообщение об ошибке.
Символы внутри символьной константы могут быть любыми графическим символами в символе источника - установка, за исключением новой строки, обратной косой черты " \ ", одинарной кавычки и двойной кавычки " или они могут быть заданы с помощью escape-последовательности.3 Типа escape-последовательности: просто, восьмиштырьково и шестнадцатеричную escape-последовательность.
Простые escape-последовательности могут быть любой из следующих объектов:
\' \" \? \\
\a \b \f \n \r \t \v
Восьмеричная escape-последовательности обратная косая черта восьмиштырьковых за последовательностью до 3 цифр.
Шестнадцатеричную escape-последовательность обратная косая черта, за которым следует знак x, выполните последовательность шестнадцатеричных цифр.
Microsoft C++ поддерживает обычный, multicharacter и константы расширенных символов.Используйте константы расширенных символов для определения элементов символа - установка расширенного выполнения (например, для поддержки international приложение).Обычные символьные константы имеют тип charконстанты имеют тип multicharacter intи константы расширенных символов имеют тип wchar_t.(Тип wchar_t в стандарте включаемые файлы STDDEF.H, STDLIB.H и STRING.H.Расширенный символ работает, однако prototyped только в STDLIB.H.)
Единственное различие в спецификации между обычным и константами расширенных символов юникода предшествуются буквы, что константы L.Примеры.
char schar = 'x'; // Normal character constant
wchar_t wchar = L'\x8119'; // Wide-character constant
В следующей таблице показаны зарезервированные символы или nongraphic, зависит от системы или не разрешено внутри констант знака.Эти символы должны быть представлены с помощью escape-последовательности.
Зарезервированное C++ или символы Nongraphic
Знак |
ASCII Представление |
ASCII Значение |
Escape-последовательности |
---|---|---|---|
Новая строка |
NL (LF) |
10 или 0x0a |
\n |
Горизонтальная табуляция |
HT |
9 |
\t |
Вертикальная табуляция |
VT |
11 или 0x0b |
\v |
Backspace |
BS |
8 |
\b |
Возврат каретки |
CR |
13 или 0x0d |
\r |
Преобразование формата |
FF |
12 или 0x0c |
\f |
ALERT |
БЕЛ |
7 |
\a |
Обратная косая черта |
\ |
92 или 0x5c |
\\ |
Вопросительный знак |
? |
63 или 0x3f |
\? |
Одиночные кавычки |
' |
39 или 0x27 |
\' |
Двойные кавычки |
" |
34 или 0x22 |
\" |
Номер восьмиштырьковый |
ooo |
— |
\ooo |
Шестнадцатеричное число |
hhh |
— |
\ xhhh |
Нуль-символ |
NUL |
0 |
\0 |
Если символ после обратной косой черты не определяет юридическое escape-последовательность, то результат конкретной реализации.В microsoft C++, символ после обратной косой черты принят буквально, как если бы избежать не присутствовало, и выдается предупреждение уровня 1 ("нераспознанное escape-последовательность").
Восьмеричная escape-последовательности, указанные в форме \ooo, состоьте из обратной косой черты, а другая, 2 или 3 восьмиштырьковых символов.Шестнадцатеричную escape-последовательность, указанные в форме \ xhhh, состоьте из символов \x выполните последовательность шестнадцатеричных цифр.В отличие от escape-последовательности являются константы, отсутствует ограничение количества шестнадцатеричных цифр в escape-последовательность.
Восьмеричная escape-последовательность завершенны первым символом, который не является восьмиштырькового числа или 3 символа видны.Примеры.
wchar_t och = L'\076a'; // Sequence terminates at a
char ch = '\233'; // Sequence terminates after 3 characters
Аналогично, шестнадцатеричную escape-последовательность завершены с первого символа, который не является шестнадцатеричного числа.Так как шестнадцатеричные цифры в том числе буквы a via f (и A via Fescape-последовательности заканчивается), убедитесь в том, что на нужном позиции.
Происходит потому, что одиночная кавычка ('содержит символьные константы), используйте escape-последовательность \' представления, заключенные одинарные кавычки.Прямая кавычка ("") может быть представлен без escape-последовательности.Знак обратной косой черты (\), знак линия-продолжения помещенный в конце линии.Если требуется знак обратной косой черты появляться внутри символьной константы, обратные косые черты типа (в строке 2\\).(См. Этапы преобразования в ссылка препроцессора дополнительные сведения о продолжении линий.)