文字定数

文字定数は1文字を表す値で、常に1文字しか表現できません。文字定数は引用符 ' で目的の文字を囲みます。通常、文字型の値は1バイトで表現されるため、1バイトで表現可能な文字でなければなりません。日本語のような1バイトで表現できない文字はワイド文字と呼ばれる値でサポートされています。ワイド文字は、通常の文字とは扱いが異なるため、この場では割愛させていただきます。この場では、1バイトで表現可能なASCIIコードの範囲でご説明します。

'A'
'B'
'$'

上記は、すべて有効な文字定数です。文字列とは異なり、文字定数で表現できのは1文字だけであることに注意してください。

文字をprintf()関数で表示するには、書式指定に%cを使います。%cを指定した場合、printf()関数は、値が文字であると認識して表示してくれます。実質的に、文字も整数と同じように値でしかありません。よって、文字を整数として表示すると、文字に対応するASCIIコードを表示することができます。また、ASCIIコードに対応する整数を文字として表示することも可能です。

サンプル05

#include <stdio.h>

int main(void) {
    printf("%c %c %c\n", 'A', 'B', 'C');
    printf("%d %d %d\n", 'A', 'B', 'C');
    printf("%c %c %c\n", 65, 66, 67);
    return 0;
}

実行結果

A B C
65 66 67
A B C

サンプル05は、文字定数'A'、'B'、'C'を、それぞれ個別に書式指定%cで表示するプログラムです。さらに、同じ文字定数を%dで整数として表示し、文字定数の値をの中身を見ることができます。ここから、逆に整数を使って文字を表示することも可能であることが確認できます。