转 义 字 符

发布时间:2024年01月22日

转义就是转变的意思

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;
}

输出结果是asdghj之间有空格,ghjfg之间有空格
建议实践一下,我说的可能不清楚
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

文章来源:https://blog.csdn.net/B_12385_Daydream/article/details/135682692
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。