所以这就是问题所在。 查找以下代码的输出。 在c ++中执行
#include<iostream>
using namespace std;
int main()
{
int i=2;
cout<<i++<<i<<i++<<i;
cout<<i;
}
此概念基于后期/预增量运算符。基于这个概念,我预测输出为23344.就像我预期的那样,当我尝试调试这段代码时它是正确的。但没有调试我得到输出为34244。 这甚至可能吗?顺便说一下,我在Dev-C ++ 5.11上试过这个。谢谢:))
答案 0 :(得分:0)
您的构造会调用未定义的行为。
请参阅Undefined behavior in c/c++: i++ + ++i vs ++i + i++和Why are these constructs (using ++) undefined behavior?
#include<iostream>
using namespace std;
int main()
{
int i=2;
//cout<<i++<<i<<i++<<i; // UB!
cout<<i++;
cout<<i;
cout<<i++;
cout<<i;
return 0;
}