char型変数 char型は文字(character)を扱うために用意された型です。
/* Example 4.1 */
#include <stdio.h>
int main(void)
{
       char a = 'A';
       char b = '\101';
       char c = '\x41';
       printf("(a) %c (%d, %o, %x)\n", a, a, a, a);
       printf("(b) %c (%d, %o, %x)\n", b, b, b, b);
       printf("(c) %c (%d, %o, %x)\n", c, c, c, c);
       return 0;
}
'文字' は「文字定数」と呼ばれるものです(*)。変数 a は文字 A を意味する値に,変数 b は8進数で 101,そして変数 c は16進数で 41 を意味する値に初期化されます。'\101' も '\x41' も文字定数です。また,printf関数の変換指定子ですが,%c はASCII文字,%o は8進数,そして,%x は16進数での出力を意味します。
実行結果です。
(a) A (65, 101, 41) (b) A (65, 101, 41) (c) A (65, 101, 41)
ASCIIコード表を確認すると,すべての変数が文字 A を意味していることが理解できます。
 文字を扱うための型が char ですが,「3.1. 型指定子」で見たように,char型は整数上の変数です。整数と文字は,ASCIIコード表に従って1対1で対応しています。上の例の場合,コンピュータは,printf において %c を指定されたら ASCIIコード65の文字である A を出力し,%d を指定されたら 10進法の65を出力するわけです。ASCIIコード表を見ると,ASCII文字は 127 までの整数に割り振られています。したがって,char型で扱える整数は,signed char で -127 から 127 となります。
*「文字定数」については「付録 文字定数,整数定数,浮動小数点定数」を参照。