c++ - 子表达式求值顺序的不可预测性

标签 c++

<分区>

请告诉我这行将在 C++ 中打印什么

int a = 5;
cout<<++a <<" " <<++a <<" " <<++a <<endl;

在“Schaum's programming with c++”一书中给出了它将从右到左进行并且输出将是 8 7 6

但我得到的输出是 8 8 8 请说明,本书成书后C++语言有没有修改?

最佳答案

这是未定义的行为;你可以得到任何结果,你的程序可以 崩溃,或者给你的老板发一封侮辱性的信。任何以此为例并为其指定特定输出的书都应该扔进垃圾桶;作者不懂C++;

关于c++ - 子表达式求值顺序的不可预测性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18165204/

相关文章:

c++ - 如何使用在函数中本地创建的对象而不将其复制到内存中?

C++ boost::shared_ptr 作为一个类的成员并重复设置它的值

c++ - std::move(std::string) 不使传递的参数为空状态

c++ - 选择元素对之间的最短距离

c++ - 具有作用域/代码块的互斥锁/锁

c++ - 如何将 XMFLOAT3 转换为 const float *pData?

c++ - ISO C++ 禁止声明无类型的 ‘multimap’

c++ - 将图像分配给继承自 Qimage 的类的对象

java - Android:从 C++ 调用带有 byte[] 参数的 java 方法

c++ - 是否可以在ODBC和C++中使用Flyway?