C++ 中使用 cout 递增和递减[重复]

2023-11-29

我是 C++ 新手,正在研究增量和减量运算符。 所以我尝试了这个例子:

    int x = 4;    
    cout << ++x << "    " << x++ << "    " << x++ << endl << endl;
    cout << x << endl;

它返回这个weirdC++ .NET 和 QtCreator 以及 5 个在线 C++ 编译器的输出:

7    5    4

7

The weird事情是我期望这样的事情:

5    5    6

7

你能解释一下发生了什么吗?


请注意cout << x++ << ++x;只是另一种表示法:

operator<<( operator<< (cout, x++), ++x);

The order其中你的x++ and ++x评估的语句是不明确的,你的代码的效果也是如此。

即使在您的特定示例中似乎是从右到左发生的,您也应该not无论如何都要依赖它。

只需使用多个语句进行另一个实验:

cout << ++x << " ";
cout << x++ << " ";
cout << x++ << endl;

您的问题的解决方案是:

Never write code这导致不明确的行为! :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 中使用 cout 递增和递减[重复] 的相关文章

随机推荐