理解C++右结合

C++中的cout是右结合的,举个例子,

#include <iostream>
using namespace std;
int main()
{
    int i = 0;
    cout << i << "一" << ++i << "二" << ++i << "三"<<endl;
    system("pause");     //vs调试让程序暂停
    return 0;
}

输出结果是:2一2二2三
和想象中一样吗?如果一样说明你理解怎么回事,不懂的话继续往下看。
计算过程如下:这里写图片描述
1.依次把cout后面的语句往上堆,图中最左边一列;
2.堆完就开始计算,从上往下计算,图中中间一列,注意,式中的++运算此时已经用掉了!
3.从底往上输出,最右边一列:i一i二i三,此时i=2;注意,因为++在数字前,所以在输出时已经计算了!
下面这个该输出什么呢

#include <iostream>
using namespace std;
int main()
{
    int i = 3;
    cout << --i << "一" << --i << "二" << --i << "三" << endl;
    system("pause");
    return 0;
}

答案是:0一0二0三
顺便说一下 ++i 和 i++ 的区别,++i 是先把 i 加 1 再继续其他操作; i ++ 是先执行其他操作再把 i 加 1;
比如

#include <iostream>
using namespace std;
int main()
{
    int i = 0;
    cout << ++i <<endl;  //先把 i 加 1 再输出,故此行输出 1
    cout << i <<endl;    //此行照样输出 1
    system("pause");
    return 0;
}
#include <iostream>
using namespace std;
int main()
{
    int i = 0;
    cout << i++ <<endl;  //先输出 i 后计算,所以此行输出 0,输出后计算 i = 1
    cout << i <<endl;    //此时的 i 计算过,此行输出 1
    system("pause");
    return 0;
}

最后来个综合一点的例子:

#include <iostream>
using namespace std;
int main()
{
    int i = 0;
    cout << ++i << "一" << i-- << "二" << i++ << "三" ;
    cout<<i<<endl;
    system("pause");
    return 0;
}

输出结果为:1一1二0三1
简单理解就是 ++i 在没有输出该位置的 i 前就进行加减运算, i++在输出后把相应的 i 输出后再进行加减运算。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值