C--详解--转义字符

前言:什么是转移字符

从字面意思可以理解:
转义字符就是转义字符:转变原来的意思的字符

#include<stdio.h>
int main()
{
	printf("abcndef");//结果为 abcndef
	return 0;
}

在n前面加入\,则会变成:

#include<stdio.h>
int main()
{
	printf("abc\ndef");//结果为 abc
	return 0;          //       def  及\n变成换行符了
}

这里的\n不再打印,即\n的意思被转义了

什么情况下用转义字符

一般来讲,在打印字符或者传递字符时才会用转移字符

转义字符汇总表

转移字符有很多,可以在https://zh.cppreference.com/w/c/language/escape
转义字符汇总表链接
查看
在这里插入图片描述

\’

⽤于表⽰字符常量’
如:

#include<stdio.h>
int main()
{
	printf("'\n");       //可以直接打印      --容易与双引号混淆
	printf("\'\n");      //可以配合单引号打印--推荐(这样不容易与双引号混淆)
	printf("%c",'\'');   //打印单引号
	return 0;          
}

\"

与’类似,它⽤于表⽰⼀个字符串内部的双引号
如:

#include<stdio.h>
int main()
{
	printf("\"\n");         //不可以直接打印,只能前面加斜杠。
	printf("%c\n", '\"');   //打印双引号
	printf("%s\n", "\"");   //打印双引号
	return 0;
}

\?

电脑早期有写三字母词,比如

//??(  -----[
//??)  -----]

在每个字母?前加上斜杠,来防止它们翻译成三字母词
现在编译器一般不支持三字母词,故很少使用转义字符?

\\

\:⽤于表⽰⼀个反斜杠防⽌它被解释为⼀个转义序列符
如:

#include<stdio.h>
int main()
{
	printf("c:\code\test.c   \n");// c:code  est.c    前面\未打印    后面\t被转义了
	printf("c:\\code\\test.c \n");// c:\code\test.c   前面\正常打印  后面\t未被转义
	return 0;
}

\a

警报字符,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣
这个字符无法直接演示。注意:电脑静音时无法听到。
这个字符可以用来判断程序是否走过某某路径

\b

\b:退格键,光标回退⼀个字符,但不删除字符,下次从该光标开始打印(覆盖)
如:

#include<stdio.h>
int main()
{
	printf("abcdef    \n");    //打印后光标落在f后面
	printf("abcdef\b");        //打印后光标落在f身上(前面)
	getchar();                
	return 0;
}

\f

换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v 。

\n

换⾏符。
如:

#include<stdio.h>
int main()
{
	printf("abc\ndef\nabc");  //abc   换行  def  换行  abc
	return 0;
}

\r

回⻋符,光标移到同⼀⾏的开头

#include<stdio.h>
int main()
{
	printf("abcdef\r1234");  //打印1234 f
	return 0;             
}

这里因为\r光标回到同行第一位,打印时会覆盖前面。
又因为字符串"1234"后面有隐藏的\0所以打印时1234后面还有一个空格

\t

制表符,光标移到下⼀个⽔平制表位,相当于电脑Tab键,通常是下⼀个4/8的倍数宽度不固定。这个可以设置,一般用于对齐。

\v

垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。(基本不用)

特殊转义字符\ddd

\ddd是指字符的8进制表示形式,d表示八进制数字
如:

#include<stdio.h>
int main()
{
	printf("\123");//表示S 123是S的ASCLL值(8进制)
	printf("\110");//表示H 110是H的ASCLL值(8进制)

	return 0;             
}

特殊转移字符\xdd

\xdd字符的16进制表示形式,d是表示16进制数字
如:

#include<stdio.h>
int main()
{
	printf("\x41");//表示A x41是A的ASCLL值(16进制)
	printf("\x61");//表示a x61是a的ASCLL值(16进制)

	return 0;
}

特殊转移字符\0

\0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其
ASCII码值是0.
ASCLL码值的参考表链接https://zh.cppreference.com/w/cpp/language/ascii

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值