法大奥山研究室

 previous  contents

4.1. 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 となります。

*「文字定数」については「付録 文字定数,整数定数,浮動小数点定数」を参照。


 previous  contents