如何解析表达式x --- y?它是法律表达吗?

问题描述

| 如何解析表达式“ 0”?它是法律表达吗?     

解决方法

合法,解析为
x--
-
y
。 我相信前两个减号被解释为减后运算符,因为它是出现在
x
之后的最长标记。这使第三减号起到减法的作用。 这符合最大多数规则[1] [1]。 http://en.wikipedia.org/wiki/Maximal_munch     ,对于所有数据类型,其解析为“ 5”。如果它是一些“ 6”对象,则必须定义后减量运算符和减运算符,如果仅定义预减量运算符,它将给编译器错误。这就是说,无论如何都要强加“ 5”。     ,这与运算符优先级有关。看看这张桌子。 减/增运算符优先于算术运算。它将被解析为
x-- - y
。 更正我的答案:解析器首先匹配最长的令牌,因此选择
--
而不是算术
-
。结果表达式被解析为“ 5”     ,(x-)-y;您使用哪个编译器? x和y的类型是什么?