1

为什么这个程序的输出是 10 而不是 11 ?

public class Test {
  public static void main(String[] args){
    int p = 10;
    p = p++;
    System.out.println(p);
  }
}
4

2 回答 2

6

尽管在赋值完成之前后缀发生了++变化p,但表达式的值仍然是 的原始值p,即10。这就是分配给p.

这是发生了什么:

  • p被安排了10
  • p的值在增量之前保存
  • p递增,并将新值11存储在p
  • 保存的值10重新存储在p.
于 2013-06-24T13:21:48.180 回答
0

我认为如果你只使用 p++ 就可以了;

于 2013-06-24T13:21:40.553 回答