赋值后增量表达式

时间:2013-06-24 13:18:17

标签: java variable-assignment

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

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

2 个答案:

答案 0 :(得分:6)

虽然postfix ++在分配完成之前更改了p,但表达式的值仍然是p的原始值,即10。这是分配给p的内容。

以下是发生的事情:

  • p被分配了10
  • p的值在增量
  • 之前保存
  • p递增,新值11存储在p
  • 10的已保存值存储在p

答案 1 :(得分:0)

我认为如果你刚使用了p ++就可以了。