如果输出使用++ x而不是x ++,输出是什么?

时间:2012-10-25 00:05:41

标签: c++

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

与做

之类的事情相比
Int y = 0
Int x = 5
y = ++x

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

5 个答案:

答案 0 :(得分:0)

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

在第一种情况下,在y递增之前分配x

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

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

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

注意:如果在等式两边的数组索引中使用the behavior may be undefined

答案 1 :(得分: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.

答案 2 :(得分:0)

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

y = 5且x = 6.

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

y = 6且x = 6

答案 3 :(得分:0)

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

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

我建议使用临时程序和输出来查看工作原理。 当然,一本好书是最好的;)

答案 4 :(得分:0)

pre-increment (++X): means that the value of X will be incremented before it gets assigned.
 in your example, value of Y will be 6 because X gets incremented first (5+1) then gets assigned to Y.

post-increment (X++): means that the value of X will be incremented after it gets assigned.
in your example, value of Y will be 5 because X gets incremented after it is assigned to Y.

You can compare these as:
++X = in-place increment
X++ = increment happens in a temporary location (Temp=5+1) which gets assigned to X (X=Temp) after Y is set to its current value (5).

Y = X++ can be represented as:
  > Temp = X+1
  > Y = X
  > X = Temp