【转义字符】【干货满满】超详细讲解+代码图解!

 

转义字符,顾名思义,首先,它是一个字符,其次它的意义转变了,但它还是一个字符。

在C语言中,字符是与ascii表格一一对应的,字符有两种表示方式,一种是用它的实体(也就是真正的字符,例如'A')表示,也可以用单引号内用反斜线加上ascil码值(如'\130''---->'X' )表示,这种使用编码值来间接地表示字符的方式称为转义字符。

转义字符以\或者\x开头,以\开头表示后跟八进制形式的编码值,以\x开头表示后跟十六进制形式的编码值。对于转义字符来说,只能使用八进制或者十六进制。这两种转移字符其代表着一个字节大小的整数值字符

\ddd ddd表示1~3个八进制的数字。如\130---->  'X'
\xdd dd表示两个十六进制数字。    如\x30 ---> '0'

同学们可以试着printf一下"\x48\x45\x4C\x4C\x4F\x20\x57\x4F\x52\x4C\x44\x0A"看看是什么.

 


字符 1、2、3、a、b、c 对应的 ASCII 码的八进制形式分别是 61、62、63、141、142、143,十六进制形式分别是 31、32、33、61、62、63。

下面的例子演示了转义字符的用法:

【转义字符】【干货满满】超详细讲解+代码图解!_第1张图片

      转义字符的初衷是用于 ASCII 编码,所以它的取值范围有限

  • 八进制形式的转义字符最多后跟三个数字,也即\ddd,最大取值是\177-->(127(十进制))
  • 十六进制形式的转义字符最多后跟两个数字,也即\xdd,最大取值是\x7f-->(127(十进制))


超出范围的转义字符的行为是未定义的,有的编译器会将编码值直接输出,有的编译器会报错。(附一张ascii表)

【转义字符】【干货满满】超详细讲解+代码图解!_第2张图片


但是这样写有些麻烦,你不能一边看ascii码表,一边写代码,所以说用它实体像'A'这样更加简单容易,但是呢这样并不能解决所有问题,ascii码中那些控制字符(非打印字符)它们都是看不见的,不能在显示器上显示,甚至无法从键盘输入,就没法使用这种直接输入的方法,只能用\ddd或者\xdd方式打印,但我们知道这样写很麻烦,直接使用 ASCII 码记忆不方便,也不容易理解,所以,针对常用的控制字符,C语言又定义了简写方式,比如我们用了一些帮助记忆的符号来代替数字,比如用n来代替十六进制数字'A','\x0A'就可以写成'\n'了。完整列表如图。


转义字符 释义 ASCIL码值
\" 双引号 034
\' 单引号 039
\\ 反斜杠(一个 092
\n 换行(LF) ,将当前位置移到下一行开头 010
\f 换页(FF),将当前位置移到下页开头 012
\b 退格(BS) ,将当前位置移到前一列 008
\a 响铃(BEL) 007
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT)  009
\v 垂直制表(VT) 011

 

来几个代码感受下:上菜~~~~

1.

【转义字符】【干货满满】超详细讲解+代码图解!_第3张图片

字符串长度可不要算错哟!\32是一个字符

2.

  • 单引号是字符类型的开头和结尾,要使用\'表示,也即'\''
  • 双引号是字符串的开头和结尾,要使用\"表示,也即"abc\"123"
  • 反斜杠是转义字符的开头,要使用\\表示,也即'\\',或者"abc\\123"

【转义字符】【干货满满】超详细讲解+代码图解!_第4张图片

3.用\把\给转义掉就能打印出我们想要的值啦

【转义字符】【干货满满】超详细讲解+代码图解!_第5张图片

亲爱滴同志们学废了嘛~~~

~~~

吹灭读书灯,一身都是月。

明天也要加油呀。

【转义字符】【干货满满】超详细讲解+代码图解!_第6张图片

你可能感兴趣的:(c)