Переменная типа char занимает один байт в памяти и может хранить один символ из таблицы кодировки. При присваивании переменной определённой литеры её необходимо заключать в одинарные кавычки, иначе она будет расценена как строка (т.е. сам символ + нулевой символ завершения строки).
Символ содержится в памяти в виде числа из таблицы кодировок ASCII, поэтому с ним можно совершать арифметические действия (также указание числа вместо литерала будет считаться литералом, а простейшим циклом for можно перебрать всю таблицу кодировки, прибавляя единицу к первому литералу).
Тип char – знаковый, значение принимает значения от -127 до 128. Если вам нужен беззнаковый тип, используйте unsigned char.