C语言中常见的转义字符有:
1、\?
在书写连续多个问号时使用,是为了防止程序解析成三字母词(如今不多用)
三字母词:指 ??)程序会解析成 ] ;(??会解析成 [
例子:
# include < stdio.h >
int main()
{
printf ("(are you kidding??)");
return 0;
}
如果编译器会把这个解析成三字母词,则输出的结果就会是( are you kidding ]
如果想要编译器输出( are you kidding ??)
就需要用到\?
,书写为printf ( "( are you kidding \?\? )");
2、\"
表示一个字符串内部的双引号
例如:
想打印一个字符串"
# include <stdio.h>
int main ()
{
printf ( " %s"," \" ");
return 0;
}
这时输出的结果就是"
3、\\
用于表示一个反斜杠,防止被解析为一个转义序列符
例如:我想输出C:test.D
这个信息
# include < stdio.h >
int main ()
{
printf ("C: \\test.D");
注意如果这里只输入一个 \,则 \t 构成一个转义字符输出结果就不会是C:test.D,所以避免这种情况需要 \\
return 0;
}
4、\a
报警,电脑会发出一个声音,可以自己下去实践一下(报警声或闪烁,或者两者同时出现)
# include < stdio.h >
int main ()
{
printf ("\a");
return 0;
}
5、\b
退格键,光标退一个字符,但是不会删除字符
例如:
# include < stdio.h>
int main ()
{
printf ("asdfg\n");
printf ("as\bdfg");
return 0;
}
这样打印出的结果是第一行asdfg
,第二行是adfg
,\b
退格,当要打印s时(光标在s的后面时),光标退格到a之后,即开始打印dfg
,d把s覆盖了,并没有删除(可以自己在电脑上实践一下)
6、\f
换页符,光标移动到下一页(如今已经反映不出),改为类似于\v
7、\n
换行符
例如下面这种情况也是可以的:
# include < stdio.h>
int main ()
{
printf ("asd\nfgj");
return 0;
}
输出的结果是第一行为asd
,第二行为fgj
8、\r
回车符,光标移动到同一行的开头
9、\t
(tab)制表符,光标移动到下一个水平制表位,通常是4\8的倍数(可以设置,根据设置情况来看)
#include <stdio.h>
int main ()
{
printf ("asd\tghj\tfg");
return 0;
}
输出结果是asd
与ghj
之间有空格,ghj
与fg
之间有空格
建议实践一下,我说的可能不清楚
10、\v
垂直分隔符,光标移动到下一个垂直制表位,通常是下一行的同一列
1、\ddd
这里的 d 是指数字八进制数字,ddd 是指1到3个八进制数字
例如:
# include <stdio.h>
int main ()
{
printf ("%c",'\130');
return 0;
}
打印出字符X
130这个八进制转换为十进制算,也就是 1乘 8的2次方+3乘8的1次方+0乘
8的0次方=88,88是大写字母X
的ASCII码,求的是字符(%c)所以结果就是X
注意这里的八进制是0到7,如果是139就是错误的
2、\xdd
中x 是必须有的,dd 是指1到2个十六进制的数字
例如:
# include <stdio.h>
int main ()
{
printf ("%c",'\x49');
return 0;
}
49这个十六进制转换成十进制是 ,4乘16的一次方+9乘16的0次方=73,I
的ASCII码是73,所以输出I
\0
也是转义字符,也就是\ddd
的形式,它的ASCII码是0