我有以下代码:
#include<iostream>
using namespace std;
int main()
{
int x=3;
cout<<x++<<++x<<x++<<++x<<endl;
return 0;
}
输出应为3557 但它是6747.为什么???
此外:
#include<iostream>
using namespace std;
int main()
{
int x=3;
cout <<x++<<endl;
cout<<++x<< endl;
cout<<x++<< endl;
cout<<++x<< endl;
return 0;
}
以上代码给出: 3 五 五 7 (新行中的每个数字) 任何人都可以解释原因吗?
答案 0 :(得分:0)
int x=3;
cout<<x++<<++x<<x++<<++x<<endl;
这是未定义的行为,因此您可以轻松获得任何结果。
int x=3;
cout <<x++<<endl; // x = 3, post incremented to 4...
cout<<++x<< endl; // here x = 4 and preincremented to x = 5
cout<<x++<< endl; // x = 5 , postincremented to 6...
cout<<++x<< endl; // so here x = 6 but preincremented to 7