转义字符(escape character),所有的ascii码都可以用“\”加数字(一般是8进制数字)来表示。而c中定义了一些字母前加"\"来表示常见的那些不能显示的ascii字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ascii字符意思了。简单来说就是在一些字符前加 “\” 使它具有其他意义。
转义字符 字 符 值 输 出 结 果 \' 一个单撇号(') 输出单撇号字符' \'' 一个双撇号(") 输出双撇号字符" \? 一个人问号(?) 输出问号字符? \\ 一个反斜杠(\) 输出反斜杠字符\ \a 警告(alert) 产生声音或视觉信号 \b 退格(backspace) 将光标当前位置后退一个字符 \f 换页(from feed) 将光标当前位置移到下一页的开头 \n 换行 将光标当前位置移到下一行的开头 \r 回车(carriagereturn) 将光标当前位置移到本行的开头 \t 水平制表符 将光标当前位置移到下一个tab位置 \v 垂直制表符 将光标当前位置移到下一个垂直表对齐点 \o、\oo、\ooo其中o表示一个八进制数字 与该八进制码对应的ascii字符 与该八进制码对应的字符 \xh[h...]其中h代表一个十六进制数字 与该十六进制码对应的ascii字符 与该十六进制码对应的字符
如果我们要打印一个字符',如下:
#include
int main() { printf("%c",'''); //我们来打印' return 0; } 出现了错误运行结果:
那么出错的原因是什么?
我们来看这
'''
,printf识别的时候,识别第一个'
,然后再识别一个'
,哎,到这里就结束了,就像识别这个字符一样'w'
,只要识别到一对儿'
,打印就会结束,但是后面还有第三个'
是多余的,就出了错误。
那么,我们使用转义字符
\'
,让'
不再是一对儿'w'
里面的'
,就像上面的??)
一样验证一下:#include
int main() { printf("%c",'\''); //我们来打印' return 0; }//转义字符 \' 运行的结果:
再来继续了解转义字符
我们打印字符串有两个形式:
#include
int main() { printf("%s\n","abcdef"); //形式一 printf("abcdef"); //形式二 return 0; } 第二种形式不能直接像下面这样打印:
printf(2123456)//错误的
如果我们在
abcdef
中间加一个\0
,但因为它代表的是换行,所以我们需要让它失效,让\0
就是\0
,没有其他含义,只需要这样就可以了:
#include
int main() { printf("%s\n","abc\\0def"); //形式一 printf("abc\\0def"); //形式二 return 0; }//转义字符 \\
上面那个表里的转义字符都是这样子来使用的。