更新一下对这几天的疑问看法。

发布于:2022-10-18 ⋅ 阅读:(720) ⋅ 点赞:(0)

一、转义字符

1. \? 在书写连续多个问号时使用,防止他们被解析成三字母词

2. \' 用于表示字符常量'

3. \“ 用于表示一个字符串内部的双引号

4. \\ 用于表示一个反斜杠,防止它被解释为一个转义序列符

5. \a 警告字符,蜂鸣

6. \b 退格符

7. \f 进纸符

8. \n 换行

9. \r 回车

10.  \t 水平制表符

11. \v 垂直制表符

12. \ddd ddd表示1~3个八进制的数字。 如: \130 X

14. \xdd dd表示2个十六进制数字。 如: \x30 0

下面重点介绍几种

1. \'    \"

#include<stdio.h>

int main()
{
	printf("%c\n",''');

	return 0;
}

如上,想要打印字符“  '  ”,那么上述代码是打印不出来的,因为编译器会将前两个“  '  ”识别为一组,那么后面的“  '  ”就为一个了,那么想要打印字符“  '  ”,只需将中间的“  '  ”改为“  \'  ”,使它转义即可

#include<stdio.h>

int main()
{
	printf("%c\n",'\'');

	return 0;
}

那么也就不难理解下面两段代码了

 

int main()
{
	printf("%s\n",""");

	return 0;
}
int main()
{
	printf("%s\n","\"");

	return 0;
}

道理是一样的。

2.  \\

表示一个反斜杠,防止它被解释为一个转义序列符,什么意思呢?

//想要打印add\c:\test这段

#include<stdio.h>

int main()
{
	printf("add\c:\test");

	return 0;
}

如果这样写那么运行的是

 很显然不是我们想要的结果,这时就要用到转义字符\\

#include<stdio.h>


int main()
{
	printf("add\\c:\\test");

	return 0;
}

 这样打印出来的就是我们想要的结果了

 可能有人会有这样的疑问,为什么第一次打印的时候会出现极端空格是est与前面的addc:分开呢?

下面介绍第三个转义字符

3. \t和\n

\t 水平制表符,什么意思呢?就是说字符\t打印出来的结果相当于四个空格

\n换行。

 像上面,如果没有加\,打印出来的是abtcd

 这是打印出来的结果ab与cd之间有四个空格,这就是转义字符\t的作用,当然\t也可以设置成2个空格。

 同样的,也就不难理解转义字符\n

 

 4. \b退格符

 打印运行的结果是acvnhbty,那么从下图可以看出

 \b转义字符将字母h删除了,打印出的结果有所区别。

5.  \ddd ddd表示1~3个八进制的数字。

     \xdd dd表示2个十六进制数字。

什么是八进制呢?八进制,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。简单举个例子,例如八进制的121就是十进制的81,怎么得出的结果呢?

 上图就清楚的展现了其中的过程,不过值得要注意的是八进制里面没有数字8。

 那么为什么运行的结果是大写字母Q呢?这就不得不提到ASCII码表

 对比一下81的ASCII表对应的字符为Q

 %d即可打印81

 也可以打印字符Q

 如果这样打印呢?是运行不起来的,此时会报出

 这样的错误,就是说\654转化为十进制的数字为428,而ASCII表中没有与它对应的字符。

同理,\xdd表示的十六进制与上述介绍的八进制道理是一样的。

最后,这次的分享就到这里吧,如果有错误或者建议,欢迎大家指正或提出。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到