java中这个复合赋值的求值顺序是什么?

myzjeezk  于 2021-07-12  发布在  Java
关注(0)|答案(2)|浏览(359)

**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

11个月前关门了。
改进这个问题

ListNode odd = head;
    ListNode even = head.next;
    odd = odd.next = even.next;
    even = even.next = odd.next;

使用此行: odd = odd.next = even.next;even.next 分配给 odd.next 然后 odd.next 分配给 odd ? 或者是 odd.next 分配给 odd 然后 even.next 分配给 odd.next ?

gojuced7

gojuced71#

赋值是右关联的。这意味着该声明被解释为:

odd = (odd.next = even.next);

这与许多运算符不同。比如减法, 1 - 2 - 3(1 - 2) - 3 不是 1 - (2 - 3) .

e1xvtsh3

e1xvtsh32#

java对=assignemnts具有从右到左的关联性
注意,不同的运算符有不同的优先级和关联性。值得一读:https://www.w3adda.com/java-tutorial/java-operator-precedence-and-associativity
... 或使用括号以完全清楚

相关问题