注册 登录
编程论坛 C++教室

C++输出流的运算顺序

林泳坛 发布于 2009-11-16 17:12, 594 次点击
下面有一个小玩具程序,不过有点不懂,各位朋友帮帮忙解答:


#include<iostream>
int main()
{
    int i=0;
    std::cout<<i++<<std::ends<<i++<<std::ends<<i++<<std::endl;
    return 0;
}

输出结果是:2 1 0

这是为什么呢,为什么不是: 0 1 2 呢?
好像与<<重载有关,但是就是想不明白,各位高手帮忙解析解析吧。
3 回复
#2
qlc002009-11-16 17:27
与重载<<无关,这里面的运算是从右往左执行的!所以结果是2 1 0
#3
林泳坛2009-11-16 21:36
说法不够彻底啊,这个我也知道的,但是只是知其然不知其所以然!
#4
qlc002009-11-16 22:30
这个是C++程序中规定的,对于后缀的++符号是从右往左运算的!

[ 本帖最后由 qlc00 于 2009-11-16 22:34 编辑 ]
1