文字リテラル には、一重引用符で囲まれた連続した文字、 またはエスケープ・シーケンスが含まれます。例えば、'c'。 文字リテラルには、例えば L'c' のように、文字 L を接頭部として付けることができます。 L 接頭部のない文字リテラルは、通常の文字リテラル、 すなわち狭幅の文字リテラル です。 L 接頭部のある文字リテラルは、ワイド文字リテラル です。 複数の文字またはエスケープ・シーケンス (単一引用符 (')、円記号 (¥) または改行文字を除く) を含んでいる通常の文字リテラルは、複数文字リテラル です。
文字リテラルの形式は、次のとおりです。
.---------------------. V | >>-+---+--'----+-文字------------+-+--'------------------------>< '-L-' '-escape_sequence-'
文字リテラルには、1 つ以上の文字またはエスケープ・シーケンスがなければなりません。 この文字には、ソース・プログラムの文字セットのどの文字でも使用できます。ただし、一重引用符、円記号、および改行記号は除きます。 文字リテラルは、1 行の論理ソース行に表す必要があります。
文字リテラルは、int 型を持ちます。
文字を 1 つだけ含んでいる文字リテラルは、
整数型である型 char を持っています。
C と C++ のどちらにおいても、ワイド文字リテラルは wchar_t 型を持っており、複数文字リテラルは int 型を持っています。
単一文字を含む、狭幅のまたはワイド文字リテラルの値は、 実行時に使われる文字セットの文字の数値表現です。 複数の文字またはエスケープ・シーケンスを含む狭幅の文字リテラルまたはワイド文字リテラルの値は、 インプリメンテーション定義されています。
二重引用符記号は、それ自体で二重引用符記号を表すことができます。しかし、一重引用符記号 を表すには、円記号の後に一重引用符記号の付いたもの (¥' エスケープ・シーケンス) を使用する必要があります。
改行文字は、¥n 改行エスケープ・シーケンスによって表すことができます。
円記号文字は、¥¥ 円記号エスケープ・シーケンスによって、表すことができます。
文字リテラルの例を次に示します。
'a' '¥'' L'0' '('
関連参照