printfの知っているべき規則の意味 %c

 %cの出力指示 (%dと比較する)

コンピュータの中央処理装置と入出力装置の間における情報のやり取りは、 ほとんどが文字を使った情報で行われます。
標準出力(stdout)への出力先も例外ではありません。
つまり、標準出力のコンソールは文字コードの番号を受け取ると、 その番号に対応する文字を出すように作られているのです。

その仕組みに合わせるため、printfの %d による出力指示は、出力する引数のデータを10進になる文字コードの並びに変換し、 それから、変換した文字コードを順番に出力する仕組みになっているのです。

例えば、123 の値を%d で出力すると言うことは、 1の文字コード、2の文字コードと、3の文字コードと順番に出力することを意味します。
(16進数で表現すると、1の文字のASCIIコード0x31と、2の文字のASCIIコードの0x32と、 3の文字のASCIIコードの0x33です。)
そして、このデータをコンソールで受け取ると、その順番で123 と表示する訳です。

さて、printfには %c の指定があります。これは引数のデータを変換なしで、 その値を単純に出力する指示になっています。以下に例を示します。

printf("%c",0x31);               
printf("%c",0x32);
printf("%c",0x33);
123                   


コンソールは、受け取った番号に対応する文字をを順番に画面へ出すので、123と出ています。