【发布时间】: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 个类似的问题。
为什么这个程序的输出是 10 而不是 11?
public class Test {
public static void main(String[] args){
int p = 10;
p = p++;
System.out.println(p);
}
}
【问题讨论】:
虽然后缀++在赋值完成之前改变了p,但表达式的值还是p的原始值,即10。这就是分配给p 的内容。
这是怎么回事:
p 分配给 10
p 的值在增量之前保存p 递增,新值11 存储在p
10 的保存值被存储回p。【讨论】:
我认为如果你只使用 p++ 就可以了;
【讨论】: