谭浩强著
转义字符
除了以上形式的字符外C还允许用一种特殊形式的字符量,就是以字符\卡头的字符序列。例如,前面已经遇到过的,在printf函数中的‘\n’它代表“换行”符。‘\t’代表将输出的位置跳到下一个tab位置(制表位置),一个tab位置为8列。这是一种在屏幕上无法显示的“控制字符”,在程序中也无法用一个一般形式的字符来表示,只能采用这样的特殊形式来表示。
常用的以“\”开头的特殊字符见表3.1.
表3.1
转义字符及其作用
转义字符
字
符
值
输出结果
\'
一个单撇号(‘)
具有此八进制码的字符
\“
一个双撇号(”)
输出此字符
\?
一个问号(?)
输出此字符
\\
一个反斜线(\)
输出此字符
\a
警告(alert)
产生声音或视觉信号
\b
退格(backspace)
将当前位置后退一个字符
\f
换页(form feed)
将当前位置移到下一页的开头
\n
换行
将当前位置移到下一行的开头
\r
回城(carriage return) 将当前位置移到笨行的开头
\t
水平制表符
将当前位置移到下一个tab位置
\v
垂直制表符
将当前位置移到下一个垂直制表对齐点
\0\00\000
与该八进制字符
其中0代表一个 对应的ASCII字符
与该八进制码对应的字符
八进制数字
\xh[h...]其中
与该十六进制码对应
与该十六进制码对应的字符
h代表一个十六
的ASCII字符
进制数字
表3.1列出的字符称为“转义字符”,意思是将“\”后面的字符转换成另外的意义。如“\n
”中的“n”不代表字母n而作为“换行”符。
表3.1中倒数第2行是一个以八进制数表示的字符,例如’\101’代表八进制数101的ASCII字符,即‘A’,(八进制数101相当于十进制数65,从附录B可以看到ASCII码(十进制数)为65的字符是大写字母‘A’)。‘\012’代表八进制数12(即十进制数的10)的ASCII码所对应的字符“换行”符。表3.1中倒数第1行是一个以十六进制数表示的ASCII字符,如‘\x41’代表十六进制数41的ASCII字符,也是‘A’(十六进制数41相当于十进制数65)。用表3.1中的方法可以表示如何可显示的字母字符、数字字符、专用字符图形字符和控制字符。如‘\033’或‘\x1B’代表ASCII代码为27的字符,即ESC控制符。‘\0’或‘\000’是代表ASCII码为0的控制字符,即“空操作”字符,它常用在字符串中。