-3
Int y = 0
Int x = 5
y = x++

与做类似的事情相比

Int y = 0
Int x = 5
y = ++x

特别是,我在问后期增量的位置通常如何影响输出

4

5 回答 5

0

如果前缀/后缀运算符是表达式或函数求值的一部分,它会确定修改变量的顺序,在求值之前(前缀)或求值之后(后缀)。

在第一种情况下,在递增y之前赋值。x

int y = 0;
int x = 5;
y = x++;

在第二种情况下,x首先递增,然后y分配。

int y = 0;
int x = 5;
y = ++x;

注意:如果在等式两边的数组索引中使用,则行为可能是 undefined

于 2012-10-25T00:09:59.567 回答
0

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。

于 2012-10-25T00:10:02.463 回答
0

在第一种情况下,y = x++,x 是后递增的。也就是说,x 在赋值给 y 之后,其值增加了。

y = 5 和 x = 6。

在第二种情况下,y = ++x,x 是预先递增的。x 在其值分配给 y 之前增加值。

y = 6 和 x = 6

于 2012-10-25T00:11:00.413 回答
0

当运算符在变量之前时,它会(并且应该在编写自己的运算符时)执行操作然后返回结果。

int x = 1 ;
int y = x++ ; // y = 1, x = 2
int z = ++x ; // x = 3, z = 3

我建议使用临时程序和输出来看看事情是如何运作的。当然,一本好书是最好的;)

于 2012-10-25T00:11:00.810 回答
0
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 = 温度
于 2012-10-25T00:17:56.433 回答