В C char
- это целочисленный тип (например, int
и long long int
).
Он действует так же, как и другие целочисленные типы, за исключением того, что диапазон значений, которые он может хранить, обычно ограничен от -128 до 127 или от 0 до 255, хотя это зависит от реализации.
Например:
char x = 3;
char y = 6;
int z;
z = x + y;
printf("z = %d\n", z); //prints z = 9
Тип char
(обычно как часть массива) чаще всего используется для хранения текста, где каждый символ кодируется как число.
Символьные и строковые константы удобны. Если предположить, что машина использует набор символов ASCII (который сегодня почти повсеместен), в этом случае заглавная буква A кодируется как 65, тогда:
char x = 'A';
char str[] = "AAA";
эквивалентно
char x = 65;
char str[] = {65, 65, 65, 0};
Следовательно, что-то вроде 'X' + 6
имеет смысл - какой будет результат, зависит от кодировки символов. В ASCII это эквивалентно 88 + 6
, что составляет 94
, что составляет '^'
.