【发布时间】:2013-02-23 20:54:59
【问题描述】:
public void increment(){
int zero = 0;
int oneA = zero++; // Compiles
int oneB = 0++; // Doesn't compile
int oneC = getInt()++; // Doesn't compile
}
private int getInt(){
return 0;
}
都是int的,为什么B&C编译不出来?是否与++ 运算符与= 0 + 1; 不同的方式有关?
操作参数无效 ++/--
【问题讨论】:
-
附注:从您命名变量的方式来看,您似乎认为
int oneA = zero++;将one 分配给oneA。这是不正确的。 post 递增运算符返回 old(非递增)值。在int oneA = zero++;之后,oneA是0,zero是1。 -
所以在你的代码中你不会只是自动写
int oneC = getInt() + 1;? -
代码中有两个错误——一个可能是疏忽;另一个是作为问题基础的误解。基于误解的 NARQ。
-
@Kris ++ 令人困惑。
++有很多问题,一旦解决方案看起来很简单。 -
@Kris :一个问题的答案对你来说是显而易见的这一事实不足以让这个问题变得毫无价值。 ++ 真的让很多人感到困惑,而且大多数人都犯了错误并从中吸取了教训。
标签: java post-increment