这段代码是不确定的行为?

时间:2016-03-16 02:00:47

标签: c++ c++11 c++14 undefined-behavior

我遇到了这段代码:

#include <iostream>

int main()
{
int m = 44;
std::cout << "m = " << m << ", m++ = " << m++ << ", ++m = " << ++m <<
std::endl;

return 0;
}

我的第一个想法是,这是未定义的行为,但事实证明这段代码是我大学考试的一部分,所以我现在不太确定。

考试的问题是:该课程的输出是什么?

我还听说C ++ 11或C ++ 14以某种方式改变了关于UB的规则,所以现在可以定义它。

无论如何,输出是(在windows中的gcc上)

m = 46, m++ = 45, ++m = 46

输出是否正确?

0 个答案:

没有答案