--事物的难度远远低于对事物的恐惧!
本篇章来分析下C语言中的接续符和转义符,对于接续符,首先来看一段代码:
#inclu\
de <std\
io.h>
int ma\
in()
{
prin\
tf("Hello D.T.\n");
retu\
rn 0;
}
prin\
tf("Hello D.T.\n");
retu\
rn 0;
}
对于这段代码,你觉得有错吗?为什么?我在vs2010中编译通过,并且输出如下:
从编译及输出结果我们知道,代码并没有错(即使我们主观上觉得代码有问题),那么让我们来具体分析下这段代码。
代码中使用了接续符'\',而接续符有如下特性,请牢记:
-编译器会将反斜杠剔除,跟在反斜杠后边的字符自动接续到前一行
-在接续单词是,反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格
-接续符适合在定义宏代码块时使用
通过接续符的特性,编译器在编译上边那段代码时就会把代码还原为如下:
#include <stdio.h>
int main()
{
printf("Hello D.T.\n");
return 0;
}
相信你已经明白了,现在来看一个接续符最适合应用的场景:宏代码块,我们定义宏来交换两个变量的值。
#define SWAP(a, b) \
{ \
int temp = a; \
a = b; \
b = temp; \
}
相信你第一眼看如上宏代码块,就知道这个宏的功能是什么,所以使用好接续符,会使我们的代码质量变得很好。
说完了接续符,现在来看看转移符:在C语言中,转移符(\)主要用于无回显字符,也可用于表示常规字符。
当使用转义字符时,\必须出现在单引号或者双引号之间。如下代码所示:
#include <stdio.h>
int main()
{
char enter = '\n';
char* p = "\141\t\x62";
printf("%s", p);
printf("%c", enter);
return 0;
}
输出为:
总结:
C语言中的反斜杠(\)同时具有接续符和转移符的作用
-作为接续符使用时可直接出现在程序中
-作为转移符使用时需要出现在单引号或双引号之间