//字符 1、2、3、a、b、c 对应的 ASCII 码的八进制形式分别是 61、62、63、141、142、143,十六进制形式分别是 31、32、33、61、62、63。,对应ASCII值为49,50,51,91,98,99,下面的例子演示了转义字符的用法:
//转义字符以\或者\x开头,以\开头表示后跟八进制形式的编码值,以\x开头表示后跟十六进制形式的编码值。对于转义字符来说,只能使用八进制或者十六进制。八进制形式的转义字符最多后跟三个数字,也即\ddd,最大取值是\177,十六进制形式的转义字符最多后跟两个数字,也即\xdd,最大取值是\x7f。
char a = '\61'; //字符1
char b = '\141'; //字符a
char c = '\x31'; //字符1
char d = '\x61'; //字符a
char a='\091' //error
char a='\91' //yes
//插个题外话
#include <stdio.h>
int main(int argc, char *argv[])
{
char *p="abc\0";
printf("%ld\n",sizeof(p)); //8,64位系统,指针变量占8个字节
char buf[]="abc\0";
printf("%ld\n",sizeof(buf)); //5而不是4,因为最后‘\0’占一个字节,且字符数组也自动加了一个'\0'结尾
return 0;
}
\n和\t是最常用的两个转义字符:
\n用来换行,让文本从下一行的开头输出,前面的章节中已经多次使用;
\t用来占位,一般相当于四个空格,或者 tab 键的功能。
单引号、双引号、反斜杠是特殊的字符,不能直接表示:
单引号是字符类型的开头和结尾,要使用\'表示,也即'\'';
双引号是字符串的开头和结尾,要使用\"表示,也即"abc\"123"; //字符串中有字符串,特殊情况会用到
反斜杠是转义字符的开头,要使用\\表示,也即'\\',或者"abc\\123"。