2016-08-03 249 views
0

所以我期待在下面的代碼片斷C++和++運營商

int a = 3; 
int b = 2; 
b = a++; 
cout << ++b; 

我的理解逐行是:

  1. 發起= 3
  2. 發起B = 2;
  3. 將(a + 1)的值賦值給b,所以b = 4;
  4. 打印B + 1,這是5

然而這是錯誤的,有人可以用簡單的術語解釋一下嗎?我是新的C++

+6

你正在混淆預增量和後增量。 'a ++'和'++ a'不一樣。相關:http://stackoverflow.com/questions/4445706/post-increment-and-pre-increment-concept –

回答

3

在C++中,當遞增或遞減在表達式中使用的「++」或位置「 - 」事項。 如果操作符在變量之前,那麼遞增或遞減將在表達式結束之前完成,在相反的情況下遞增或遞減將在整個表達式執行之後完成。

int b = ++a; // first add +1 to a, then assign a to b 
int b = a++; // assign a to b, then add +1 to a 
2

在這裏你去:

  • 啓動= 3
  • 啓動B = 2;
  • 將(a)的值賦值給b,所以b = 3並將a增加到4;
  • 打印B + 1,其爲4
+1

這將是很好的解釋前綴vs後綴 –

4

在語句:

b = a++ 

a用於分配被評估以b之後a然後遞增所以a = a+1

在另一方面:

b = ++a 

增量a所以a = a+1以前a然後評估分配給b

你可以看看這裏深:

Pre-increment or post-increment in C/C++