如何用C语言解析?
1000
(如果是八进制012
* 10 ^ 2)
或
1200
(如果整数为十进制)?
答案 0 :(得分:6)
带指数的常量总是浮点数。
C中没有八进制浮点常量。(有十六进制浮点常量,但这不是其中之一)。
所以012e2
编写1200.0
是一种不必要的混淆方式。
(我认为没有充分的理由以这种方式写出来,除非意图是故意混淆。)
答案 1 :(得分:5)
012e2
是double
类型的字面值,其值与1200.0
相同。
浮动常量是十进制或十六进制浮点常量。十进制浮点常量可以从任何数字开始,包括0
。
(C99.6.4.4.2浮动常数)
decimal-floating-constant: fractional-constant exponent-partopt floating-suffixopt digit-sequence exponent-part floating-suffixopt digit-sequence: digit digit-sequence digit