一、是什么
转义字符如\n,\0,是一些特殊的字符,顾名思义,转义字符是转变原来意思的字符。
我们都知道ASCII码表:

ASCII码表都可以用"\"加数字表示(大多为8进制的数),而ASCII的前32个符号是无法显示出来的,为了方便,我们将其中常见的用转义字符来表示。
注:转义字符都是单个字符
二、有哪些
目前一共有11个转义字符,它们分别是:
1.警报符:\a
2.退格符:\b
3.换页符:\f
4.换行符:\n
5.回车符:\r
6.制表符:\t
7.垂直分隔符:\v
8.问号符:\?
9.单引号符:\'
10.双引号符:\"
11.反斜杠符:\\
12.空字符:\0
13.八进制符:\ddd
14.十六进制符:\xdd
三、怎么用
1.警报符:\a
警报,使得电脑发出报警声或者出现闪烁,有可能同时出现
例如:
#include<stdio.h>
int main()
{
printf("你好\a你好");
return 0;
}
运行结果:

我用VS2022系统运行电脑出现了声响。
2.退格符:\b
光标回退一个字符,但不删除字符。
例如:
#include<stdio.h>
int main()
{
printf("你好\b你好\n");
printf("你好\b\b你好\n");
printf("你好\b\b\b你好\n");
printf("\n\n");
printf("你好\n\b\b你好\n");
printf("你好\b\b\n你好\n");
return 0;
}
运行结果:

3.换页符:\f
光标移到下一页,在打印时使用,在代码运行时类似于\n和\v(实际上有区别)
例如:
#include<stdio.h>
int main()
{
printf("你好\f你好");
return 0;
}
运行结果:

4.换行符:\n
输入换行符后,当前显示位置就会移动到下一行的开头。是我们最常用的符号
代码运行结果如3换页符
5.回车符:\r
光标回到同一行开头
例如:
#include<stdio.h>
int main()
{
printf("你好\r你好\r你好\r");
return 0;
}
运行结果:

6.制表符:\t
光标移到下一个水平指标位,通常是空四格,类似于Tab键。
例如:
#include<stdio.h>
int main()
{
printf("你好\t你好");
return 0;
}
运行结果:

7.分隔符:\v
光标移到下一个垂直制表位,在打印时使用
代码运行结果如3换页符
8.问号符:\?
在某些编译器下 ,会将 “ ??) ” 解析成 三字母词 “ ] ” ,
所以在打印 “ ??) ”时,为了防止被解析成三字母词,在它前面加 " \",改成 ” ??) “ 。
注:在现有的大部分编译器中,这个都是无法验证的。
9.单引号符:\'
10.双引号符:\"
像这样打印单引号时会造成编译器无法编译
例如:
#include<stdio.h>
int main()
{
printf("%c\n",''');
printf("%c\n",'"');
return 0;
}
和else和}的规则一样,’和“都是和前一个最近的相应的符号相配对,加入\可以转义将‘和”打印出来。
例如:
#include<stdio.h>
int main()
{
printf("%c\n",'\'');
printf("%c\n",'\"');
return 0;
}
运行结果:

11反斜杠符:\\
用于表示一个反斜杠,防止它被解释为转义字符
例如:
#include<stdio.h>
int main()
{
printf("你好\n你好\n");
printf("\n");
printf("你好\\n你好\n");
return 0;
}
运行结果:

第一次输出换行两次,第二次输出第一个\n被“\”转义而失去了换行的效果。
12.空字符:\0
null字符,代表没有内容,用于字符串的结束标志。
例如:
#include<stdio.h>
int main()
{
char a[]="hello";
char b[]={'h','e','l','l','o'};
char c[]={'h','e','l','l','o','\0'};
printf("%s\n",a);
printf("%s\n",b);
printf("%s\n",c);
return 0;
}
运行结果:

我们可以看到数组b在打印时,还打印了一些随机值,这是因为其在末尾没有打印\0为结束标志。而数组a和c是完全正常的。特别是数组a,“”中是默认末尾有结束标志的。
13.八进制符:\ddd
14.十六进制符:\xdd
ddd表示1~3个八进制的数字。
dd表示2个十六进制数字。
例如:
#include <stdio.h>
int main()
{
printf("%d\n",'\130'); //八进制数130用十进制表示是88
printf("%d\n",'\x30'); //十六进制数30用十进制表示是48
return 0;
}
运行结果:

注意:八进制和十六进制数换成的十进制数不能超过127,即都可以用ASCII码来表示。
以上就是我谈及的内容,不足之处还望指出。
千磨万击还坚韧,任尔东西南北风
本文详细介绍了转义字符的概念,列举了ASCII码表中的11个转义字符,包括警报符、退格符等,并展示了它们在编程中的实际应用和示例。

314

被折叠的 条评论
为什么被折叠?



