2013-06-28 49 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)。