Некоторые из вышеперечисленных символов имеют особый смысл. Так, например, символ с кодом 9 обозначает символ горизонтальной табуляции, символ с кодом 10 – символ перевода строки, символ с кодом 13 – символ возврата каретки.
КС
С
КС
С
КС
С
КС
С
КС
С
КС
С
КС
С
КС
С
А
Р
а
░
└
╨
р
Ё
Б
С
б
▒
┴
╤
с
ё
В
Т
в
▓
┬
╥
т
Є
Г
У
г
│
├
╙
у
є
Д
Ф
д
┤
─
╘
ф
Ї
Е
Х
е
╡
┼
╒
х
ї
Ж
Ц
ж
╢
╞
╓
ц
Ў
З
Ч
з
╖
╟
╫
ч
ў
И
Ш
и
╕
╚
╪
ш
°
Й
Щ
й
╣
╔
┘
щ
∙
К
Ъ
к
║
╩
┌
ъ
·
Л
Ы
л
╗
╦
█
ы
√
М
Ь
м
╝
╠
▄
ь
№
Н
Э
н
╜
═
▌
э
¤
О
Ю
о
╛
╬
▐
ю
■
П
Я
п
┐
╧
▀
я
В таблицах обозначение КС означает "код символа", а С – "символ".
Тип char рассматривается компилятором как "целочисленный", поэтому возможно использование signed char (по умолчанию) - коды символов от -128 до +127 и unsigned char - коды символов от 0 до 255. При этом коды символов первой половины кодовой таблицы для signed char и unsigned char совпадают. Коды символов второй половины кодовой таблицы для signed char являются отрицательными, а для unsigned char - положительными, от 128 до 255 (см. выше кодировку целых отрицательных чисел).
Таким образом, одни и те же значения типа char могут рассматриваться и как символы, и как числа (знаковые либо беззнаковые); при этом конкретный смысл значения определяется операцией, которая над ним совершается.
Заметим, что коды однотипных символов (цифр; больших латинских букв; малых латинских букв) идут подряд, в порядке возрастания. Этим можно воспользоваться для упрощения многих действий.
Пример 1. Проверить, является ли символ цифрой. Если да, то присвоить переменной целого типа значение этой цифры.
char c; int i;
...
if (c>='0' && c<='9')
i=c-'0'; // Равносильно i=c-48;
Пример 2. Занести в переменную случайно выбранную большую букву латинского алфавита.
#include<stdlib.h>
...
char c;
randomize(); // Инициализация счетчика случайных чисел
...
c=random(26)+'A'; // 26 - число латинских букв в алфавите
Напомним, что символьная константа – это символ, заключенный в одинарные кавычки: 'A', 'х'.
Данная операция позволяет определить размер объекта по ID или типу, результатом является размер памяти в байтах (тип результата int). Формат записи:
sizeof(параметр);
где: «параметр» – тип или идентификатор объекта (не ID функции).
Если указан идентификатор сложного объекта (массив, структура, объединение), то получаем размер всего сложного объекта. Например:
sizeof(int) ® размер памяти – 2 байта,
int b[5];
sizeof(b) ® размер памяти – 10 байт.
При переносе программы с одной платформы на другую нельзя делать предположений, например, о размере типа int, так как для оперативной системы (ОС) MS DOS этот тип имеет размер в два байта, а для ОС Windows 9X – четыре байта. В стандарте языка С поэтому диапазоны значений для основных типов не задаются, а определяются только соотношения между их размерами, например: