什么是转义字符呢?
假如我们要打印一个文件夹的名称,它的名称叫:c:\test\test.c
我们在前面学习了printf函数,我们就简单的写下了下面的这一段代码:
#include <stdio.h>
int main()
{
printf("c:\test\test.c");
return 0;
}
但是我们运行这个上面这个程序之后,我们会得到下面的结果:
我们发现这个结果与我们想要得到的结果是不同的,那么这个是为什么呢?
为了解决这个问题,我们也就引入了转义字符的概念。
什么是转义字符呢?
顾名思义,就是改变了字符原本的意思,得到了一个新的意思。
常见的转义字符如下表:
转义字符 | 转义字符的含义 |
\n | 回车换行 |
\t | 横向跳到下一制表位置 |
\\ | 反斜线符 |
\' | 单引号 |
\" | 双引号 |
\a | 鸣铃 |
\ddd | 1~3位8进制数所表示的字符 |
\xdd | 1~2位16进制数所表示的字符 |
\n,也就是我们在printf里面常用的换行符号。
#include <stdio.h>
int main()
{
printf("hello\n");
printf("world!\n");
return 0;
}
\t,就是我们上面示例里面的,它会导致横向跳到下一制表位置。(解决上面的问题也很简单,我们只要在\前面再加一个\就可以了)
#include <stdio.h>
int main()
{
printf("c:\\test\\test.c");
return 0;
}
\\,我们观察表格我们知道\"也是一个字符,假如我们想要打印出\来,就会与我们printf后面的,组合产生一个新的转义字符,所以我们要想要单独的打印出\我们就在\的前面加上一个\。
#include <stdio.h>
int main()
{
printf("\\");
return 0;
}
\',我们建立一个字符数组的时候,我们将要引用'',如果我们想要在数组里面直接添加’这个字符的话,就会分不清三个',所以我们要引用'的时候,我们可以通过\'来引用。
#include <stdio.h>
int main()
{
char arr[]={'\''};
return 0;
}
\a,通过名字我们知道,当我们使用printf函数输出它的时候我们的电脑将会发出声音。(一个\a就会发出一声声音)
#include <stdio.h>
int main()
{
printf("\a\a\a\a");
return 0;
}
我们上面的知道就可以了,下面的两种我们很重要,我们要加以理解。
\dxx与\xxx两种转义字符的意思:
知道这个之前,我们要先知道的ASCII码:
在我们电脑的键盘上面有很多按键,我们知道计算机只可以识别0、1.我们计算机是无法直接识别字符,所以为了帮助我们计算机识别这些字符方便,我们人为的确定了一个表格来确定每个字符所对应的数字。
我们的\ddd与\xdd后面的数字分别是8进制和16进制。我们输出这两个转义字符的时候,我们先将其数字改为10进制的数字,其与上面表格中所对应的就是我们要输出的。
#include <stdio.h>
int main()
{
printf("\100\n");
printf("\101\n");
printf("\x9\n");
return 0;
}
我们将得到表格中所对应的字符。
在C语言中,我们有的时候写的代码关系有的时候会比较复杂,当我们写完这个代码之后,为了帮助他人可以看懂我们的代码和之后我们后来可以看懂,我们一般在我们写完的复杂代码后面加上注释。
#include <stdio.h>
int main()
{
/*printf("\100\n");
printf("\101\n");*/
printf("\x9\n");
return 0;
}
我们C语言一般将/*与*/之间的内容作为注释,当我们将这段注释起来,这段话系统就不会识别,例如上面的程序,我们将只输出最后一段。但是这种注释方法是有缺陷的
#include <stdio.h>
int main()
{
/*printf("\100\n");
/*printf("\101\n");*/
printf("\x9\n");*/
return 0;
}
/**/这样的我们是不支持嵌套注释的,上面代码的最后一句我们还会输出。
为了更加的方便,我们一般使用C++中的//作为注释
#include <stdio.h>
int main()
{
//printf("\100\n");
printf("\101\n");
//printf("\x9\n");
return 0;
}
例如上面的代码,我们将第一句和最后一句注释了,我们程序就只会输出中间的一行。
当然这个不是我们正确使用注释的方法,我们一般在代码后面进行注释。
#include <stdio.h>
int main()
{
printf("\100\n");/*\100是转义字符*/
printf("\101\n");/*\101是转义字符*/
printf("\x9\n");/*\x9是转义字符*/
return 0;
}
#include <stdio.h>
int main()
{
printf("\100\n");//\100是转义字符
printf("\101\n");//\101是转义字符
printf("\x9\n");//\x9是转义字符
return 0;
}
上面的代码仍然会输出三行,但是后面的注释会帮助我们理解。