C语言转义字符注意事项
程序员文章站
2022-03-05 11:55:03
...
1 简介
在C语言中,一个字符除了可以用它的实体(也就是真正的字符)表示,还可以用编码值表示。这种使用编码值来间接地表示字符的方式称为转义字符(Escape Character)
- 转义字符以
\
或者\x
开头,以\开头表示后跟八进制形式的编码值,以\x
开头表示后跟十六进制形式的编码值。对于转义字符来说,只能使用八进制或者十六进制
char a = '\61'; //字符 1
char b = '\141'; //字符 a
char c = '\x31'; //字符 1
char d = '\x61'; //字符 a
char *str1 = "\x31\x32\x33\x61\x62\x63"; //字符串 "123abc"
char *str2 = "\61\62\63\141\142\143"; //字符串 "123abc"
char *str3 = "The string is: \61\62\63\x61\x62\x63" //混用八进制和十六进制形式
2 注意点
2.1 转义字符的界限
- 转义字符的初衷是用于
ASCII
编码,所以它的取值范围有限 - 八进制形式的转义字符最多后跟三个数字,也即
\ddd
,最大取值是\177
,八进制的0
可以省略,\101
等价于\0101
- 十六进制形式的转义字符最多后跟两个数字,也即
\xdd
,最大取值是\x7f
,十六进制前面的x
就不可省略 - 超出范围的转义字符的行为是未定义的,有的编译器会将编码值直接输出,有的编译器会报错
2.2 特殊的转义字符
-
\'
单引号 -
\"
双引号 -
\\
反斜杠