2016-06-11 175 views
-2

我無法理解這些陳述如何產生不同的值的概念。據我所知,x + = 1,意味着x = x + 1。我也知道x ++應該等於x + 1.C++ x + = 1 x ++和x = x + 1是不是一樣?

我也搜索了這個話題,發現帖子提出同樣的問題,那些帖子通常通過陳述陳述/表達式是相同的,但不同的結果是由於另一個代碼錯誤造成的。以我將提供的例子來看,我看不出有什麼代碼錯誤,請解釋一下,謝謝。

int x = 0; 
x++; 

此時x應爲1,因爲x ++會將x加1。

那麼爲什麼如果我將x賦值爲0,然後繼續編碼「cout < < x ++;」我在屏幕上得到0的值!!如果x ++等於x + 1並且如果x是0,那麼1 + 0 = 1時x ++如何變爲0?我被告知它是由於++放在x之後,但爲什麼處理加1 + 0與0 + 1相同呢?

+0

將'++'放在'x'之後,這意味着您希望在確定表達式的值之後發生增量。如果你想讓增量先發生,使用'++ x'。 C++不是數學。在C++中,符號不一定意味着它們在數學中的含義。 –

回答

3

cout << x++;在增量前輸出值爲x,因爲您使用的是後綴增量運算符。

cout << ++x;會做你所期望的。

0

x++只是返回x,然後增加一個x

所以cout << x++在你的榜樣將是cout << x; x = x+ 1;

+0

好吧,我現在明白,cout << x ++;只是返回x,然後加1。但如果是這樣的話,如果我cout << x ++; << x;我仍然得到0?看起來像1永遠不會被添加到x。 – bob

+1

'cout << x ++; << x;'編譯? –

+0

是的,它變成我的屏幕上的「00」 – bob

0

相當於那是後加的,這意味着它將執行變量,是,然後添加到變量。

如果您嘗試過預增加++x,那麼它會添加到變量,並按原樣執行變量(現在增加)。因此,int x = 0; x = x + 1; cout << x;int x = 0; x++; cout << x++;將全部打印1

0

Cout < < x ++將首先打印x然後增加它,x ++是後增量,因此操作x增加後。相反,++ x會做相反的事情。而且,如果你想像x + 1這樣的表達式,表達式將在打印之前被評估

0

x ++是後增量,這意味着它在它運行當前語句後遞增。

相反,++ x在執行增量之前執行當前語句。

希望這會有所幫助。

1

有兩種形式的++運算符:前綴和後綴。您正在使用後綴表單。

x++返回當前 x的值,然後增加它。當您使用cout << x++時,它會打印x ,然後會遞增。

++x做你想做的事:它增加x 然後返回它。 cout << ++x會給你你想要的。

相關問題