字符常量
C语言中字符常量有两种形式,一种是我们所熟知的普通单个字符,如:‘a’,‘G’,‘3’,‘?’,‘#’,不能写成 ‘12’,‘ab’,既一对竖着的单引号中间仅有一个字符,而另一种是不常见的单个字符,它们不常见但不代表不常用,它们叫做转义字符
转义字符理解
它是一种特殊的字符常量,就是以 \ 符号开头的符号序列,比如:‘\t’,‘\a’ …等,这里的 \ 符号可以把它理解为转义的意思,既把a转变为其它特殊意义,而这里的 ‘\a’ 在C语言中的作用是发出一个警告的声音或者视觉信号,显然这里的 ‘\a’ 与 ‘a’ 的作用是完全不同的,a 被搭配 \ 符号后已经被转义,改变了意义。注意:\ 符号不是与任意字符都可以搭配的
常用的以""开头的特殊字符有如下:
转义字符 | 字符值 | 含义理解/输出 |
---|---|---|
\’ | 一个单引号 ’ | 该单引号作为普通字符以其对应的Asclll码的二进制形式存储 |
\" | 一个双引号 " | 该双引号作为普通字符以其对应的Asclll码的二进制形式存储 |
\? | 一个问号 ? | 输出此字符 |
\ | 一个反斜杠 \ | 输出此字符 |
\a | 警告(alert) | 产生声音或者视觉信号,在C中打印此字符时会产生声音 |
\b | 退格(backspace) | 将当前位置后退一个字符 |
\f | 换页 | 将当前位置移到下一页的开头 |
\n | 换行 | 将当前位置移到下一行开头 |
\r | 回车 | 将当前位置移到所在行开头,前面的字符会被覆盖 |
\t | 水平制表符(tab) | 将当前位置移到下一个tab位置 |
\v | 垂直制表符 | 将当前位置移到下一个垂直制表对齐点 |
\o、\oo或\ooo | 与该八进制码对应的Ascll码字符 | 输出该八进制码对应的字符 |
\xh[h…] | 与该十六进制码对应的Ascll码字符 | 输出该十六进制码对应的字符 |
重点理解最后这两种转义字符:
- \o、\oo或\ooo的意思是:\符号后面可以是1~3位位数的八进制数
比如:‘\7’、‘\35’、‘\06’、‘\141’或者’\017’等都是合法字符。 - \xh[h…]的意思是:\符号后面可以是1~2位位数的十六进制数
比如:‘\x41’、‘\xa’、'x1B’等都是合法的,前导符号x不能省略且是小写的。
备注:‘\0’或’\000’都是代表Ascll码为0的控制字符,既“空操作(NULL)”字符,常用在字符串末尾。