int i=9;
System.out.println(--i + ++i);
执行输出:17 i的最终值为:9
根据Java中的结合性和优先级规则,应首先执行++i,即从右到左计算得10,然后--i得到9...将两者相加,答案应该是19...就我所知,这种代码在C / C ++中会产生未定义的行为,但在Java中,规则是严格定义的,并且没有序列点的概念。那么,是否有人可以澄清这个问题?因为我确实对此感到困惑。此外,在某些书籍中提到后置递增和后置递减运算符是LTR关联的。但在其他一些书籍中,所有递增和递减(包括后置和前置)都是RTL关联的。是否有人可以为Java提供正确的运算符优先级和关联表?