Int y = 0
Int x = 5
y = x++
与做
之类的事情相比Int y = 0
Int x = 5
y = ++x
特别是,我问的是后期增量的位置通常如何影响输出
答案 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