Ali*_*Osm 3 c++ cout increment decrement
我是C++的新手,研究增量和减量运算符.所以我尝试了这个例子:
int x = 4;
cout << ++x << " " << x++ << " " << x++ << endl << endl;
cout << x << endl;
Run Code Online (Sandbox Code Playgroud)
它在C++ .NET和QtCreator以及5个在线C++编译器上返回这个奇怪的输出:
7 5 4
7
Run Code Online (Sandbox Code Playgroud)
该奇怪的是,我希望是这样的:
5 5 6
7
Run Code Online (Sandbox Code Playgroud)
你能解释一下会发生什么吗
oo_*_*uel 13
请注意,这cout << x++ << ++x;只是另一种表示法:
operator<<( operator<< (cout, x++), ++x);
Run Code Online (Sandbox Code Playgroud)
该订单中,你的X ++和++ X语句进行评估,是不确定的,所以是你的代码的效果.
即使它似乎从就在你的具体的例子向左发生,你应该不以任何方式依赖于这一点.
只需使用多个语句进行另一个实验:
cout << ++x << " ";
cout << x++ << " ";
cout << x++ << endl;
Run Code Online (Sandbox Code Playgroud)
您的问题的解决方案是:
永远不要编写导致未定义行为的代码!:)