gpt4 book ai didi

c# - 为什么 x++-+-++x 合法但 x+++-+++x 不合法?

转载 作者:可可西里 更新时间:2023-11-01 08:36:30 26 4
gpt4 key购买 nike

我想知道为什么在 C# 中以下是好的:

int y = x++-+-++x;

但是

int y = x+++-+++x;

不是吗?为什么对 + 有偏见?

最佳答案

另外两个答案是正确的;我将向他们补充说,这说明了词法分析的一些基本原则:

  • 词法分析器目光短浅——它的“先行”极少
  • 词法分析器是贪婪的 -- 它试图立即生成最长的标记。
  • 词法分析器在失败时不会回溯尝试寻找替代解决方案。

这些原则意味着 +++x 将被解释为 ++ + x 而不是 +++ x

然后解析器会将 ++ + x 解析为 ++(+x),而 (+x) 不是 < em>变量,它是一个,所以它不能递增。

另请参阅:http://blogs.msdn.com/b/ericlippert/archive/2010/10/11/10070831.aspx

关于c# - 为什么 x++-+-++x 合法但 x+++-+++x 不合法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17599848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com