所以我期待在下面的代碼片斷C++和++運營商
int a = 3;
int b = 2;
b = a++;
cout << ++b;
我的理解逐行是:
- 發起= 3
- 發起B = 2;
- 將(a + 1)的值賦值給b,所以b = 4;
- 打印B + 1,這是5
然而這是錯誤的,有人可以用簡單的術語解釋一下嗎?我是新的C++
所以我期待在下面的代碼片斷C++和++運營商
int a = 3;
int b = 2;
b = a++;
cout << ++b;
我的理解逐行是:
然而這是錯誤的,有人可以用簡單的術語解釋一下嗎?我是新的C++
在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
在這裏你去:
這將是很好的解釋前綴vs後綴 –
在語句:
b = a++
a
用於分配被評估以b
和之後a
然後遞增所以a = a+1
。
在另一方面:
b = ++a
增量a
所以a = a+1
以前a
然後評估分配給b
。
你可以看看這裏深:
你正在混淆預增量和後增量。 'a ++'和'++ a'不一樣。相關:http://stackoverflow.com/questions/4445706/post-increment-and-pre-increment-concept –