每个字符常量都对应一个整数编码,所以表示一个字符有两种方式:
一、直接写出字符本身,然后用一对单引号括起来。比如'A','1'等等。但是有一些特殊字符不能这样表示,比如单引号本身,不能写成 ''',会报错,所以给这些特殊字符前面加个“\”符号标志一下,告诉编译器接下来的字符要当成普通字符来读,就像这样'\''。
二、用编码表示字符。就像用9527叫周星弛一样。具体做法是先写个斜杠,再加上编码,最后用单引号括起来。字符的编码是什么?查ASCII码表。注意这里的编码只能用八进制和十六进制,用八进制时前面加0或不加,用十六进制时前面加x。 比如'\07'和'\7'是一样的,是八进制。'\x7'是十六进制。
你的问题里 A、D是第二种表示方法,B、C是第一种表示方法,形式都没错,只有A里使用了八进制编码,就不应该出现8这个数字,所以A错了。