转义字符有两种形式:符号形式和数字形式。
符号形式的有如下几个:
| \a | alert(e.g., bell) | 响铃 |
| \b | backspace | 回退 |
| \f | form feed | 换页 |
| \n | newline | 换行 |
| \r | carriage return | 回车 |
| \t | horizontal tab | 横向制表符 |
| \v | vertical tab | 纵向制表符 |
| \\ | backslash | 反斜杆 |
| \' | single quote | 单引号 |
| \“ | double quote | 双引号 |
| \? | question mark | 问号 |
其中,?主要用于三元组。双引号在字符常量中不需要使用反斜杆,单引号在字符串常量中不需要反斜杆。
数字形式的有八进制和十六进制。反斜杆后面直接跟的数字是八进制数,最多可以有三个数字。
十六进制是标准C引入的,在反斜杆后跟x,然后是十六进制数字,数量不限。
虽然如此,但标准C规定,数字形式的普通字符不能超过unsigned char的范围,数字形式的宽字符不能超过wchar_t的范围。
如在ASCII中,字符'a'的八进制形式为'\141',十六进制为'\x61'。
如果数字的值在执行字符集中没有对应的字符,则结果依赖于实现(implementation-defined)。
除了以上三种转义形式,在反斜杆后出现其他形式的转义,其结果是未定义的(undefined)。
使用数字转义一定要小心,一方面它依赖于特定的字符集,从而导致可移植性问题。此外,不仔细的写法可能会出现不期望的结果。如: