考慮下面的代碼:行爲前增量運營商
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char **argv) {
vector<int> v = { 1 };
auto it = v.begin();
cout << ++(*it) << " " << v[0] << " " << endl;
cout << v[0] << endl;
return EXIT_SUCCESS;
}
編譯和運行之後,此代碼產生了以下控制檯輸出:
2 1
2
鑑於++(*it)
遞增第一矢量值,我會而是期望以下輸出:
2 2
2
爲什麼是不是v[0]
的第一個cout
聲明中反映的增量?
在應用++運算符的表達式中沒有定義的序列點。 – EJP
我無法弄清楚爲什麼有人會低估我的問題? –