如何解析表达式x- y ?它是一个合法的表达式吗?

How is the expression x---y parsed? Is it a legal expression?

本文关键字:表达式 一个 何解析      更新时间:2023-10-16

如何解析表达式x---y ?它是一个合法的表达吗?

合法,解析为x-- - y

我相信前两个减号被解释为后减量运算符,因为它是x之后合法出现的最长令牌。这样,第三个减号就起减法的作用了。这符合最大值规则[1]

[1]。http://en.wikipedia.org/wiki/Maximal_munch

对于所有数据类型,它被解析为x-- - y。如果它是class对象,那么你必须定义后减操作符和减操作符,如果你只定义前减操作符,它会给编译器错误。这意味着,x-- - y在任何情况下都是强制的。

这与操作符优先级有关。请看这张表。

自减/自增运算符优先于算术运算符。它将解析为x-- - y

纠正我的答案:解析器首先匹配最长的令牌,因此选择--而不是算术-。导致表达式被解析为x-- - y

(x——)-y;你使用哪个编译器?x和y是什么类型的?

相关文章: