关于C语言中的转义字符

时间:2021-10-15 19:41:02

1.转义字符的分类

1. 1一般转义字符

这种转义字符,虽然在形式上由两个字符组成,但只代表一个字符。常用的一般转义字符为:

\a    
\n     \t
    \v  
  \b  
  \r     \f
    \\
    \’
  \"

关于C语言中的转义字符

细心的读者可能已经发现,转义字符'\\'代表的反斜杠\
和转义字符’\’’代表的字符' 和转义字符'\"'代表的字符",其本身就是可显示字符,为什么还要对它转义呢?

这是因为它们的原有的字符形式已作它用,其中,单引号用作区分字符常量的括号,双引号用作区分字符串(下面将要介绍字符串)的括号,而反斜杠本身已用来表示转义字符的开头,因此必须对它们用转义字符重新声明。

1.2 八进制转义字符

它由反斜杠'\'和随后的1~3个八进制数字构成的字符序列。例如,'\60'、'\101'、'\141'分别表示字符'0'、'A'和'a'。因为字符'0'、'A'和'a'的ASCII码的八进制值分别为60、101和141。

字符集中的所有字符都可以用八进制转义字符表示。

如果你愿意,可以在八进制数字前面加上一个0来表示八进制转移字符。

1.3 十六进制转义字符

它由反斜杠'\'和字母x(或X)及随后的1~2个十六进制数字构成的字符序列。例如,'\x30'、'\x41'、'\X61'分别表示字符'0'、'A'和'a'。因为字符'0'、'A'和'a'的ASCII码的十六进制值分别为0x30、0x41和0x61。

可见,字符集中的所有字符都可以用十六进制转义字符表示。

小结

由上可知,使用八进制转义字符和十六进制转义字符,不仅可以表示控制字符,而且也可以表示可显示字符。但由于不同的计算机系统上采用的字符集可能不同,因此,为了能使所编写的程序可以方便地移植到其他的计算机系统上运行,程序中应少用这种形式的转义字符。

2.使用转义字符时需要注意以下问题

1)转义字符中只能使用小写字母,每个转义字符只能看作一个字符。

2)\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。

3)在C程序中,使用不可打印字符时,通常用转义字符表示。

4)转义字符’\0’表示空字符NULL,它的值是0。而字符'0'的ASCII码值是48。因此,空字符’\0’不是字符0。另外,空字符不等于空格字符,空格字符的ASCII码值为32而不是0。编程序时,读者应当区别清楚。

5)
如果反斜线之后的字符和它不构成转义字符,则’\’不起转义作用将被忽略。

例如:

printf(“a\Nbc\nDEF\n”);

输出:

aNbc

DEF

6)转义字符也可以出现在字符串中,但只作为一个字符看待。

例 求下面字符串的长度

“\026[12,m” 长度为6

“\0mn”   长度为0。(想想:为什么不是2)

注明:文章摘抄整理自网易博主Aaron的博客,博客网址:http://blog.163.com/sunshine_linting/blog/static/44893323201181325818165/