Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Символьные литералы – это один или несколько символов, заключенных в апострофы: ’A’, ’я’, ’+’, ’\n’.

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

const char c='1'; //символ ‘1’
const char d=49; //задание символа ‘1’ его ASCII-кодом

Перед начальным апострофом может размещаться буква L. Между апострофами может быть записан произвольный символ, кроме \, ‘, “,?. Эти символы записываются в виде ESC-последовательностей: \\, \’, \”, \?.

Ординарная односимвольная константа имеет тип char, записывается без ведущего символа L, состоит из одного символа. Ее значение эквивалентно числовому значению из применяемой в реализации кодовой таблицы символов (например, на IBM-совместимых компьютерах, таблицы кодов ASCII). Ординарная мультисимвольная константа имеет тип int и состоит из нескольких символов (ее значение зависит от реализации).

Константа, включающая ведущий символ L, имеет тип wchar_t и называется широкой (широкосимвольной). Значением широкой константы из одного символа является числовое значение кода из применяемой в реализации кодовой таблицы символов. Значение широкой константы из нескольких символов зависит от реализации.

Символьная константаможет использоваться как целая константа, причем ее значением является интерпретация внутреннего представления данного символа в виде целого значения. Символьная константа не может быть пустой.

 

Для визуального представления неграфических символов используются ESC-последовательности, записываемые между апострофами. ESC-последовательность начинается символом обратной дробной черты (\ - backslash) и может быть представлена:

· одним знаком:

переход на новую строку (\n),
горизонтальная табуляция (\t),
возврат каретки (\r),
звонок (\a),
обратная дробная черта (\\),
возврат на один шаг (backspace, \b);
нуль-символ окончания строки в С++(NULL) ‘\0’

· числом из 1.. 3 восьмеричных цифр, определяющим код символа; ‘\ooo’, где ooo – восьмеричные цифры, представляющие символ в таблице кодов ASCII (восьмеричное число в диапазоне от 0 до 377, превышение приводит к ошибке);

· числом из 1-3 шестнадцатеричных цифр, определяющим код символа,(с предшествующей буквой X или х); так можно представить и печатаемый символ (за \x может быть записано любое количество шестнадцатеричныхцифр, однако значение не должно выходить за диапазон 0x00-0xFF). Любой неподходящий символ последовательности \ооо или \хhhh считается концом восьмеричного или соответственно шестнадцатеричного кода.

Например:

‘\x27’ – АSCII-код символа апострофа;

‘\xa’ – АSCII-код символа перехода на новую строку;

‘\40’ – АSCII-код пробела;

Таблица 2.5. Управляющие последовательности
(
основные ESC-последовательности ):

содержание последовательность обозначение значение
новая строка \n NL (LF) 0ха
возврат каретки \r CR 0хd
звонок \a BEL 0х7
горизонтальная табуляция \t HT 0х9
вертикальная табуляция \v VT 0хb
возврат на шаг \b BS 0х8
перевод формата \f FF  
обратная косая черта \\ \ 0х5с
апостроф \’ 0х27
двойная кавычка \” 0х22
знак вопроса \? ?  
нулевой символ ‘\0’ NULL  
восьмеричный код \ооо ооо  
шестнадцатеричный код \хhhh hhh  

 

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

int main() {

cout << sizeof 'z' << endl; //1

cout << sizeof '\n\t' << endl; //4, т.к. мультисимвольная

cout << sizeof L'\x4F' << endl; //2, т.к. широкосимвольная

cout << sizeof '\111' << endl; //1, т.к. 8-ичный код

_getch();

return 0;

}




Поделиться с друзьями:


Дата добавления: 2015-06-25; Просмотров: 481; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.