字符文字
字符文字是一种特殊类型的整数文字,用于表示一个字符。它们用单引号括起来,例如'a'
,类型为 int
。根据机器的字符集,文字的值是一个整数值。他们不允许后缀。
字符文字前面的 L
前缀使其成为 wchar_t
类型的宽字符。同样,因为 C11 u
和 U
前缀分别使其成为 char16_t
和 char32_t
类型的宽字符。
当打算表示某些特殊字符(例如非打印字符)时,使用转义序列。转义序列使用转换为另一个字符的字符序列。所有转义序列都包含两个或多个字符,第一个字符是反斜杠\
。紧跟在反斜杠后面的字符确定序列被解释为的字符文字。
转义序列 | 代表字符 |
---|---|
\b |
退格 |
\f |
表格馈送 |
\n |
换行(新行) |
\r |
回程 |
\t |
水平标签 |
\v |
垂直标签 |
\\ |
反斜杠 |
\' |
单引号 |
\" |
双引号 |
\? |
问号 |
\nnn |
八进制值 |
\xnn … |
十六进制值 |
Version >= C89
转义序列 | 代表人物 |
---|---|
\a |
警报(嘟嘟声,铃声) |
Version >= C99
转义序列 | 代表人物 |
---|---|
\unnnn |
通用角色名称 |
\Unnnnnnnn |
通用角色名称 |
通用字符名称是 Unicode 代码点。通用字符名称可以映射到多个字符。数字 n
被解释为十六进制数字。根据所使用的 UTF 编码,通用字符名称序列可能会导致代码点由多个字符组成,而不是单个普通的 char
字符。
在文本模式 I / O 中使用换行转义序列时,它将转换为特定于 OS 的换行字节或字节序列。
问号转义序列用于避免三字符 。例如,??/
被编译为表示反斜杠字符'\'
的三字符,但是使用 ?\?/
会产生 字符串 ??/
。
八进制值转义序列中可能有一个,两个或三个八进制数字。