c++ - 在同一 std::cout 语句中递增两次

标签 c++

我不确定为什么在第二种情况下输出会反转。 它可能很简单,但我不认为我可以花 更多时间思考这个问题。任何帮助/建议是 赞赏。注意编译器是VS2012

double array[] = {10.0,20.0,30.0,40.0,50,60.0,70,80,90,100.0};
double *it = array;
int size = 10;
while(i<size) 
{               
    std::cout << "First : " <<  *it;
    it++;
    std::cout << "   Second : " << *it << std::endl; 
    it++;
    i++;        
}
//output
//First : 10.0  Second : 20.0
//First : 30.0  Second : 40.0
//...and so on

/*
while(i<size) 
{
std::cout << std::setprecision(15) << "First : " <<  *it++ << "   Second : " << *it++ <<  std::endl;
i++;
}
//Output is reversed in this case
//First : 20.0  Second : 10.0
//First : 40.0  Second : 30.0
//...and so on

*/

最佳答案

发生这种情况是因为赋值顺序未定义,很可能这就是它显示值反转的原因。 来源:http://en.cppreference.com/w/cpp/language/eval_order

关于c++ - 在同一 std::cout 语句中递增两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26493112/

相关文章:

c++ - 如何将这些串口的参数传递给函数

c++ - 我怎样才能重载序列化 boost 功能,让一个用于文件存储,另一个用于 tcp 消息?

c++ - 将类的实例返回给 main

c++ - ROS:在 nodehandle.subscribe 中使用 lambda 作为回调

c++ - 模板和静态对象(未定义的引用和要求来自)

c++ - 无法调用 getter 方法

c++ - 在 tr1::shared_ptr 的 vector 中查找元素

c++ - 什么是 SDL_Joystick,什么是 SDL_GameController?两者之间有什么关系?

c++ - Qt Creator LNK1104 : cannot open file 'glu32.lib'

c++ - windows.h和int min不喜欢彼此