C语言中,下列不合法的字符常量是A '\xff' B '\65' C '&' D'\028'

问题描述:

C语言中,下列不合法的字符常量是
A '\xff' B '\65' C '&' D'\028'

首先看定义,用单引号括起来的单个字符,或用双引号括起来的一串字符即字符常量.
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 的,所以格式虽对但数值错了.不合法.