为什么标准中没有包含常量语法中的符号字符?
提到只有数字和符号字符仅存在于指数中。
答案 0 :(得分:7)
标准不会打扰数字文字前面的符号,因为它会是多余的。
语法已将符号捕获为一元加+
和一元减-
运算符的一部分。当你写
int a = -4;
右侧的语法可以充分描述为带有-
操作数的一元减4
表达式。这是标准采用的方法。
答案 1 :(得分:5)
如果-
是常量-2
的一部分,那么4-2
将是语法错误(因为令牌始终是最长的字符序列)。此外,-2147483648
和- 2147483648
的语义会有所不同(第一个是int
,第二个是long
,假设int
是32位和long
更长)。这两件事都会令人困惑。
如果-
始终是运算符,-2147483648
的语义有时会出乎意料,但更常见的x-1
会按预期工作。这就是大多数编程语言(包括C)的工作原理。