В Си 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 символов (который почти повсеместно сегодня), в этом случае заглавная А кодируется в виде 65, а затем:
char x = 'A';
char str[] = "AAA";
эквивалентно
char x = 65;
char str[] = {65, 65, 65, 0};
Поэтому, что-то например, 'X' + 6
имеет смысл - какой результат будет зависеть от кодировки символов. В ASCII это эквивалентно 88 + 6
, который равен 94
, который равен '^'
.
Вопрос действительно неполный - как следует перерабатывать/переполнять. Без этого не может быть дано полное решение. –