かきましょう
char c[] = "abc\012\0x34";
単一の文字で:
char c[] = { 'a', 'b', 'c', '\012', '\0', 'x', '3', '4', '\0' };
最初に表示されるのは、次の 8 進数にまたがる\0
8 進数のエスケープ シーケンスの開始です。\012
8 進数のエスケープ シーケンスは、標準 (N1570 ドラフト) のセクション 6.4.4.4 で指定されています。
8 進エスケープ シーケンス:
\
8 桁
\
8 桁 8 桁 8 桁
\
8 桁 8 桁
バックスラッシュの後に 1 桁、2 桁、または 3 桁の 8 進数が続きます。そのセクションのパラグラフ 7 では、8 進数および 16 進数のエスケープ シーケンスの範囲が示されています。
7 8 進数または 16 進数の各エスケープ シーケンスは、エスケープ シーケンスを構成できる最長の文字シーケンスです。
8 進エスケープ シーケンスの長さは最大で 3 桁の 8 進数字に制限されていますが (したがって"\123456"
、5 文字で構成されます{ '\123', '4', '5', '6', '\0' }
)、16 進エスケープ シーケンスの長さは無制限です。
16 進エスケープ シーケンス:
\x
16 進数字
16 進エスケープ シーケンス 16 進数字
したがって"\x123456789abcdef"
、2 文字 ( { '\x123456789abcdef', '\0' }
) のみで構成されます。