C语言中下列常量不合法的是

下列常量不合法的是

(1)35L (2)0X13 (3)-3.81799 (4)1. (5-78566L (6)0x3.6 (7)053.6 (8)af10 (9)0X4dL (10)E-10 (11)0X2e-6 (12)4.2e
刚开始学,不合法的请说一下原因,万分感谢!!!

(6) 0x3.6 0x开头 这是个16进制数,16进制数没有小数形式,后面不能是3.6这种
(10)E-10 要用小写 e
(11)0x2e-6 同第一条,e是个小数
(12)4.2e 这个没有原因,格式不对,正常应该是 Ae-B ,A,B 都是整数
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-23
首先看定义,用单引号括起来的单个字符,或用双引号括起来的一串字符即字符常量。
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 的,所以格式虽对但数值错了。不合法。