Int y = 0
Int x = 5
y = x++
与做类似的事情相比
Int y = 0
Int x = 5
y = ++x
特别是,我在问后期增量的位置通常如何影响输出
如果前缀/后缀运算符是表达式或函数求值的一部分,它会确定修改变量的顺序,在求值之前(前缀)或求值之后(后缀)。
在第一种情况下,在递增y
之前赋值。x
int y = 0;
int x = 5;
y = x++;
在第二种情况下,x
首先递增,然后y
分配。
int y = 0;
int x = 5;
y = ++x;
注意:如果在等式两边的数组索引中使用,则行为可能是 undefined。
x++ 在操作后增加 x。
Int y = 0 Int x = 5 y = x++
Y 将等于 5,同时将 x 设置为等于 6。
Int y = 0 Int x = 5 y = ++x
Y 等于 6,X 也等于 6。
在第一种情况下,y = x++,x 是后递增的。也就是说,x 在赋值给 y 之后,其值增加了。
y = 5 和 x = 6。
在第二种情况下,y = ++x,x 是预先递增的。x 在其值分配给 y 之前增加值。
y = 6 和 x = 6
当运算符在变量之前时,它会(并且应该在编写自己的运算符时)执行操作然后返回结果。
int x = 1 ;
int y = x++ ; // y = 1, x = 2
int z = ++x ; // x = 3, z = 3
我建议使用临时程序和输出来看看事情是如何运作的。当然,一本好书是最好的;)
pre-increment (++X):表示 X 的值将在分配之前递增。 在您的示例中,Y 的值将是 6,因为 X 首先递增(5+1)然后分配给 Y。 post-increment (X++):表示 X 的值在赋值后会递增。 在您的示例中,Y 的值将为 5,因为 X 在分配给 Y 后会递增。 您可以将它们比较为: ++X = 就地增量 X++ = 增量发生在临时位置 (Temp=5+1),在 Y 设置为其当前值 (5) 后分配给 X (X=Temp)。 Y = X++ 可以表示为: > 温度 = X+1 > Y = X > X = 温度