2013-06-28 38 views
0

变量声明的两个例子快速检查所列:上递增/递减运算在C++

实施例1:

x = 10; 
y = ++x; 

实施例2:

x = 10; 
y = x++; 

书中表示,实施例中1 y等于11,在例2中 y等于10.我想我明白了为什么,这里是我的推理,所以请让我知道,如果我有这个和/或如果有一个更简洁的思考方式。

在第一示例中,ÿ等于11,因为它简单地设定为等于“X + 1”,因为递增运算符至上,而在第二个例子ý被设定为等于原来的声明 x,然后分别在 x上发生增量操作。这似乎是有道理的,因为在示例2中,变量都等于等号,然后“x + 1”操作将作为对该方程式的事后考虑而发生,而对和没有影响。

+0

++ x增加x并返回增加的数字,x ++返回x然后递增:P祝你好运! –

+0

比我描述的要容易得多的方法,谢谢。 –

回答

2

你说得对。

y=++x 

表示: x++; y=x;

然而,

y=x++; 

表示: y=x; x++;

+0

简明扼要,正是我期待的,谢谢。 –

1

我想你已经得到了它,但它可以在简单的话来理解。

y = x++; 

在此行后增加x。结果是这条线之前

y = 10, x = 11 

而在

y = ++x; 

增加x。结果是

y = 11, x = 11 
1

黄金法则:

前缀递增/递减(++ x或--x)有权到左的关联性。

后缀递增/递减(x ++或x--)具有从左到右的关联性。

x = 10 

if (x++ == 11) {   
    // Post increment 
} 


if (++x == 11) { 
    // Pre increment 
} 

所以在你的情况下:

实施例1:x的

x = 10; 
y = ++x; 

原始值(这里是10)被递增第一和然后被分配到y。

实施例2:

x = 10; 
y = x++; 

x的原始值被首先分配给y,然后递增(〜11)。