1、在 C 语言里,转义序列的作用是在字符串字面量和字符常量中表示一些难以直接输入的字符。下面为整理了 C 语言里常见的转义序列及其功能:
常用转义序列
转义序列 | 代表的字符 | ASCII 码值(十进制) |
---|---|---|
\a | 警报(响铃) | 7 |
\b | 退格 | 8 |
\t | 水平制表符 | 9 |
\n | 换行 | 10 |
\v | 垂直制表符 | 11 |
\f | 换页 | 12 |
\r | 回车 | 13 |
\" | 双引号 | 34 |
\' | 单引号 | 39 |
\\ | 反斜杠 | 92 |
\? | 问号 | 63 |
特殊转义序列
- 八进制转义:
\ooo
(这里的ooo
代表 1 - 3 位的八进制数)- 示例:
\110
对应的是字符'H'
(也就是八进制的 110,换算成十进制是 72)。
- 示例:
- 十六进制转义:
\xhh
(其中hh
表示 1 - 2 位的十六进制数)- 示例:
\x48
同样表示字符'H'
(十六进制的 48,十进制为 72)。
- 示例:
- Unicode 转义(C99 及后续版本)
\uXXXX
:用于表示 16 位的 Unicode 字符(XXXX
是 4 位的十六进制数)。\UXXXXXXXX
:可表示 32 位的 Unicode 字符(XXXXXXXX
为 8 位的十六进制数)。
需留意的要点
- 问号转义(
\?
):其主要用途是避免出现三字符组(不过在现代 C 语言中,三字符组已基本不再使用)。 - 长八进制值:若八进制数超过 3 位,只有前 3 位会被视为转义序列的一部分。
- 十六进制转义:该转义序列会一直持续到非十六进制字符出现为止。
- 未定义的转义序列:像
\z
这类未被定义的转义序列属于非法的,在不同的编译器中可能会有不同的处理方式。
2、在 C 语言里,每个转义序列所代表的单个字符,都有其对应的英语单词全称。下面为你详细列出:
常用转义序列的全称
转义序列 | 英语全称 | 中文含义 |
---|---|---|
\a | Alert | 警报(响铃) |
\b | Backspace | 退格 |
\t | Horizontal Tab | 水平制表符 |
\n | New Line | 换行 |
\v | Vertical Tab | 垂直制表符 |
\f | Form Feed | 换页 |
\r | Carriage Return | 回车 |
\" | Double Quote | 双引号 |
\' | Single Quote | 单引号 |
\\ | Backslash | 反斜杠 |
\? | Question Mark | 问号 |
特殊转义序列的全称
转义序列 | 英语全称 | 中文含义 |
---|---|---|
\ooo | Octal Escape Sequence | 八进制转义序列 |
\xhh | Hexadecimal Escape Sequence | 十六进制转义序列 |
\uXXXX | Unicode 16-bit Escape Sequence | Unicode 16 位转义序列 |
\UXXXXXXXX | Unicode 32-bit Escape Sequence | Unicode 32 位转义序列 |