C语言进阶:13、接续符和转义符

C语言中的接续符(\)是指示编译器行为的利器。

编译器会在反斜杠(\)剔除,跟在反斜杠后面的字符自动接续到前一行;

在连接单词时,反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格;(会报错)

backslash and newline separated by space  //	warning  在接续符后多加了一个空格

接续符适合在定义宏代码块时使用。

源代码:

#include <stdio.h>

#define SWAP(a,b) {int temp=a; a=b; b=temp;}

int main()
{
	int a=1;
	int b=2;
	int c=3;
	
	SWAP(a,b);
	
	printf("a= %d, b= %d\n", a, b);
	
	SWAP(b, c);
	
	printf("b= %d, c= %d\n", b, c);

	return 0;
}
将宏代码块通过接续符展开:
#define SWAP(a,b) 		                \
{						\
		int temp=a;		        \
		a=b;			        \
		b=temp;			        \//通过接续符可以一眼看出宏定义内容的含义
}

转义符

C语言中的转义符(\)主要用于表示无回显字符,也可用于表示常规字符
  \n    回车换行
  \t	横向跳转到下一制表位置
  \v	竖向跳格
  \b	退格
  \r	回车
  \f	走纸换页
  \\	反斜杠符 “\”
  \'	单引号符
  \a	鸣铃
  \ddd	1~3位八进制数所代表的字符
  \xhh	1~2位十六进制数所代表的字符

观察下面代码,判断输出:

char enter = '\n';

char *p = "\141\t\x62";    //八进制的141,对于十进制97,小写字符a的ANSIC码

printf("%s", p);
printf("%c", enter);  //无回显字符    直接换行

输出为:

delphi@delphi-vm:~/will$ ./a.out
a	b

也就是说,转义字符可以出现在单引号和双引号之间,表示正常的含义。

#include <stdio.h>

int main()
{
    char c = '\n';
    char* s = "\n\n";
    
    printf("%c\n", c);
    printf("%s\n", s);
    
    return 0;
}

小结:

    C语言中的反斜杠(\)同时具有接续符和转义符的作用

    作为接续符使用时可直接出现在程序中

    作为转义符使用时需出现在单引号或双引号之间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值