【问题标题】:Assignment of a Post Increment Expression [duplicate]后增量表达式的分配[重复]
【发布时间】:2013-06-21 00:28:06
【问题描述】:

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

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

【问题讨论】:

  • SO 上至少会有 100 个类似的问题。

标签: java variable-assignment


【解决方案1】:

虽然后缀++在赋值完成之前改变了p,但表达式的值还是p的原始值,即10。这就是分配给p 的内容。

这是怎么回事:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-20
      • 1970-01-01
      • 2014-12-09
      • 1970-01-01
      • 2016-02-20
      • 2015-03-24
      • 1970-01-01
      • 2021-06-09
      相关资源
      最近更新 更多