我在这个论坛中遇到过这个问题
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
int x=0;
while (x<3) {
x = x++;
cout << x << endl;
}
return 0;
}
根据上面的代码,为什么while循环无限?在mac os下使用gcc 4.4,while循环确实终止:)所以这个问题并不适用于所有架构。我变得艰难的输出是
1
2
3
我没有看到0,我猜原因与双重任务有关?
答案 0 :(得分:14)
x = x++;
是未定义的行为
答案 1 :(得分:0)
你永远不会看到零,因为增量在cout之前。