C语言中,不合法的字符常量是“A、'\xff'”,因为这虽然属于ASCII码字符,但是“ff”超出了ASCII码最大的“7f”,所以不合法。
“B、'\65'”属于ASCII码字符,“C、'&'”属于普通字符,“D'\028'”属于ASCII码字符。字符常量主要以下三类:
1、普通字符
即用单撇号括起来的一个字符,如'b' ,'y',‘?’。字符常量在储存在计算机的储存单元中时,是以其代码(一般采用ASCII代码)储存的。
2、转义字符
即特殊字符常量,转移字符是C语言中表示字符的一种特殊形式,其含义是将反斜杠后面的字符转换成另外的意义。
3、ASCII码字符
还可以用字符的ASCII码表示,即用反斜符(\)开头,后跟字符的ASCII码,这种方法也称为转义序列表示法,具体方法是:
(1)用字符的八进制ASCII码,表示为:\0dd.这里,0dd是八进制值(0可以省略)。
(2)使用字符的十六进制ASCII码值,表示为 \xhh或Xhh 这里hh是两位十六进制值。
扩展资料:
C语言中合法标识符的规则:
1、标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,a1,prog_to。
2、不能把C语言关键字作为用户标识符,例如if ,for, while等。
3、标识符长度是由机器上的编译系统决定的,一般的限制为8字符(注:8字符长度限制是C89标准,C99标准已经扩充长度,其实大部分工业标准都更长)。
参考资料来源:百度百科-字符常量
C '&' 是用单引号括起来的单个字符,正确。
A '\xff' B '\65' D'\028' 是用单引号括起来的多个字符,但因它们前面都 有一个转义符 ‘\‘ ,就不能说它们都不符合定义,都不合法的。
A '\xff' 中 '\x' 组合表示是一个十六进制数 ffH = 10 进制的 255 ,它代表一个不可见字符的ASCII 码, 合法 。
B '\65' 同理 '\' + 三个十进制数 '\ddd' 表示的是 八进制数。'\65' = '\065' = 10 进制的 53, 是 ‘F’ 的ASCII 码表示。单 字,合法。
D '\028' 同上表示是八进制数,但八进制数中逢八则进一,是不会出现 8 的,所以格式虽对但数值错了。不合法。
C '&' 是用单引号括起来的单个字符,正确。
A '\xff' B '\65' D'\028' 是用单引号括起来的多个字符,但因它们前面都 有一个转义符 ‘\‘ ,就不能说它们都不符合定义,都不合法的。
A '\xff' 中 '\x' 组合表示是一个十六进制数 ffH = 10 进制的 255 ,它代表一个不可见字符的ASCII 码, 合法 。
B '\65' 同理 '\' + 三个十进制数 '\ddd' 表示的是 八进制数。'\65' = '\065' = 10 进制的 53, 是 ‘F’ 的ASCII 码表示。单 字,合法。
D '\028' 同上表示是八进制数,但八进制数中逢八则进一,是不会出现 8 的,所以格式虽对但数值错了。不合法。
2014-08-23
(10)E-10 要用小写 e
(11)0x2e-6 同第一条,e是个小数
(12)4.2e 这个没有原因,格式不对,正常应该是 Ae-B ,A,B 都是整数
因为以这种表示字符常量的方法,应该是三位八进制数字,而八进制中,最大的数是7。