文字リテラル

文字リテラルは、ASCIIコードのひとつの文字をソースコード上で表現するものです。「'」でASCIIコードの一つの文字を囲みます。

// 文字リテラル
'a'
'b'

これはchar型で、ASCIIコードの値になります。ASCIIコードの文字として出力したい場合はprintf関数の「%c」を使います。

#include <stdio.h>

int main(void) {
  
  char ch = 'a';
  
  // ASCIIコード(数値)
  printf("%d\n", ch);
  
  // ASCIIコードに対応する文字
  printf("%c\n", ch);
}

出力結果です。

97
a

文字リテラルのエスケープシーケンス

文字リテラルのエスケープシーケンスです。「\t」「\n」で、タブや改行を表現できます。

\tタブ
\n改行(LF)
\0ヌル文字

文字リテラルのエスケープシーケンスのサンプルです。

#include <stdio.h>

int main(void) {
  
  // 文字リテラルのエスケープシーケンス
  printf("%d %d %d\n", '\t', '\n', '\0');
}

出力結果です。

9 10 0

ASCIIコードの任意の文字

「\x16進数ASCIIコード」というエスケープシーケンスを使って、ASCIIコードの任意の文字を表現できます。以下はASCIIコードの「a」を16進数で表現しています。

\x61

文字リテラルのエスケープシーケンスでASCIIコードの任意の文字を使用するサンプルです。

#include <stdio.h>

int main(void) {
  
  // 文字リテラルのエスケープシーケンス
  printf("%c\n", '\x61');
}

出力結果です。aが出力されます。

a

エスケープシーケンスの一覧

記号意味
\aベル
\bバックスペース
\fページ送り(クリア)
\n改行(ラインブレーク)
\r改ページ
\tタブ
\v垂直タブ
\\\
\??
\'シングルクォーテーション(')
\"ダブルクォーテーション(")
\0ヌル文字
\N8進定数
\xN16進定数

関連情報