gpt4 book ai didi

java - 运算符优先级问题导致 "error: unexpected type"

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:31:08 24 4
gpt4 key购买 nike

由于最近有很多运算符优先级问题,我开始玩一些代码并想出了这个:

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

这给出:

Error: unexpected type

required: variable
found: value

我尝试这样做是因为我有兴趣了解 java 如何处理 postfix 的运算符优先级高于 prefix 这一事实。上面的语句似乎会导致矛盾,我猜这是由这个错误处理的。

我的问题有两个方面:

  1. 为什么会出现这个错误?究竟是什么意思?
  2. 为什么 postfix 的优先级高于 prefix?我敢肯定这是有充分理由的,但我一直想不出一个。也许它会解决这个未定义的行为,但它会以某种方式引起更多问题?

最佳答案

错误的原因是x++产生了一个值,而你不能对一个值应用递减运算符,只能对一个变量应用。例如,如果 x=41,x++ 计算结果为 41,而不是变量 x,并且 --(41) 没有意义。

至于为什么postfix的优先级高于prefix,我猜测是为了避免在解析时与其他操作符产生歧义。例如,编译器可以报告 x--x 的语法错误,而不是将其解析为 x-(-x)

关于java - 运算符优先级问题导致 "error: unexpected type",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17838123/

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