1

给定以下代码片段:

int i = 0;

int y = + ++i;

System.out.println(y);

结果是 1。为什么这是一个有效的声明?谁能解释一下 =+ 是什么?

4

4 回答 4

7
int y = + ++i;

此行中的第一个+只是一元运算+符(请参阅:赋值、算术和一元运算符)。它什么也不做。它类似于一元运算-符。上面的行相当于:

int y = ++i;

它递增i然后分配ito的新值y

于 2013-04-22T11:14:35.510 回答
2

这里+表示该值是否为正,即unary运算符,如果您将值更改为,-则答案将为-1。即int y = - ++i;会给-1

于 2013-04-22T11:16:02.387 回答
2

等号后面的第一个加号是值的符号。所以这意味着它是一个正数。

int y = - ++i;会回来-1

于 2013-04-22T11:16:51.480 回答
0

Java 保证 它会被评估left-to-right。具体来说,++higher precedence比 +。所以它首先绑定这些,然后将加法操作从左到右关联起来

于 2013-04-22T11:14:47.370 回答