与c++中的Cout混淆
Confusion with Cout in c++
由于在cout函数中打印将从左侧到右侧开始,为什么这些类型的命令打印方式不同?请解释一下。据我所知,以下程序的输出应该是113,但却是322。怎样
#include<iostream.h>
void main()
{
int i=1;
cout<<i<<i++<<++i;
}
输出:
322
提前感谢
您似乎假设增量从左到右发生,但根据标准,子表达式的求值顺序是未指定。请参阅此处了解更多详细信息。
在这种情况下,看起来编译器选择了从右到左进行评估:
++i
发生,所以i == 2
和2
是表达式的值- 发生
i++
,将i
递增到3
,但评估为其旧值2
- CCD_ 8现在被评估为CCD_
相关文章:
- 增量运算符与后缀混淆
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- std::cout.imbue()多重调用
- C++图形类指针混淆
- OpenCV C++.快速计算混淆矩阵
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 结构和双指针隐藏在其他结构中,多层混淆
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 混淆了如何使用IDL与Ethovision进行通信
- 关于 std::min, std::max 中的比较运算符的混淆
- 在作为静态成员包含在另一个类中的类的构造函数中使用 cout
- 在 COUT 语句中使用 COUT 调用函数
- GCC 4.8.2 自动矢量化由于 cout 而失败
- 对单链表的混淆
- std::cout输出int时出现编译错误
- 在这种情况下显式调用时,std::cout 如何更改析构函数的行为?
- C++ Setter/Getter,cout 工作,printf 失败
- 与c++中的Cout混淆
- Printf调用与std::thread混淆,但std::cout没有问题