1 核心概念
转义字符 是一种特殊的字符序列。它通常以一个反斜杠 开头,后跟一个或多个字符。它的主要作用是告诉编译器或解释器:"不要按字面意思理解我后面的字符,我有特殊的含义。"
它主要解决两个问题:
- 表示无法直接键入或看到的"控制字符"(如换行、制表符)。
- 表示那些本身就有特殊语法含义的字符(如引号、反斜杠本身)。
2 常见转义字符表

数值表示法
八进制转义
cpp
printf("\101"); // 八进制 101 = 十进制 65 = 'A'
printf("\12"); // 八进制 12 = 十进制 10 = '\n'
printf("\0"); // 八进制 0 = 空字符
十六进制转义
cpp
printf("\x41"); // 十六进制 41 = 十进制 65 = 'A'
printf("\x1F"); // 十六进制 1F = 十进制 31
printf("\x0A"); // 十六进制 0A = 十进制 10 = '\n'
使用示例
cpp
#include <stdio.h>
int main() {
// 基本转义字符
printf("Hello,\nWorld!\n"); // 换行
printf("Column1\tColumn2\tColumn3\n"); // 制表符
printf("Path: C:\\Users\\Name\n"); // 反斜杠
printf("He said: \"Hello!\"\n"); // 双引号
printf("Character: \'A\'\n"); // 单引号
// 特殊效果
printf("Alert sound:\a\n"); // 响铃
printf("Backspace test:\bX\n"); // 退格
printf("Line1\rLine2\n"); // 回车
// 数值转义
printf("ASCII 65: \101\n"); // 八进制
printf("ASCII 65: \x41\n"); // 十六进制
// 字符串中的转义
char str1[] = "Hello\nWorld";
char str2[] = "Tab\tHere";
char str3[] = "Null terminator ends here:\0after null";
return 0;
}
实例详解
1. 表示特殊字符本身
在字符串中,如果你想包含一个双引号,但双引号又是字符串的边界符,这时就需要转义。
cpp
// C语言示例
printf("他说:\"你好,世界!\"\n");
// 输出:他说:"你好,世界!" (然后换行)
// 打印文件路径
printf("文件路径是:C:\\Users\\Desktop\\file.txt\n");
// 输出:文件路径是:C:\Users\Desktop\file.txt
2. 控制格式
cpp
print("姓名:\t张三")
print("年龄:\t25\n")
print("城市:\t北京")
输出:
cpp
姓名: 张三
年龄: 25
城市: 北京
3. 一个易混淆的例子(\b 和 \r)
cpp
#include <stdio.h>
int main() {
printf("Hello\bWorld\n"); // 输出:HellWorld (o被退格删掉了)
printf("Hello\rWorld\n"); // 输出:World (光标回到行首,World覆盖了Hello)
return 0;
}
3 总结
转义字符的本质是一种"元编码",它让有限的键盘字符能够表示丰富多样的控制字符和符号。理解转义字符的关键在于记住:
- 当你想在字符串中使用 语法边界符 (如 "、')或 元字符本身(如 \)时,需要转义。
- 当你想输入 不可见的控制符(如换行、制表)时,使用对应的转义序列。