源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

浅析C++中cout的运行机制

  • 时间:2020-07-04 04:52 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:浅析C++中cout的运行机制
[u]复制代码[/u] 代码如下:
#include <iostream> using namespace std; int hello1(); int hello2(); int main() {     int a, b;     cout<<"a="<<hello1()<<" b="<<hello2()<<endl;     return 0;} int hello1() {     cout<<"hello1"<<endl;     return 1; } int hello2() {     cout<<"hello2"<<endl;     return 2; }
最终输出是: hello2 hello1 a=1 b=2 一时让人有点难以琢磨,网上给出了其靠谱的解释:cout流的操作顺序是:先从右往左读入缓冲区,然后再从左往右输出。所以它从右边往左读的时候,碰到了函数当然去执行函数先了,然后把函数返回值读入缓冲区再然后。。。就是从左输出了。 根据这个解释,有实验的几个程序,能加深点理解 [b]程序1: [/b]
[u]复制代码[/u] 代码如下:
#include <iostream> using namespace std; int main() {     int b[2]={1,2};     int *a=b;     cout<<*a<<" "<<*(a++)<<endl;     return 0; }
输为出:2 1。 解释:先读入*(a++),对于a++,是先读入缓冲区,其自增,所以,此时缓冲区中的a是1,。再读入*a,此时a已自增,所以读入缓冲区的是2. [b]程序2: [/b]
[u]复制代码[/u] 代码如下:
#include <iostream> using namespace std; int main() {     int i=5;     cout<<i<<" "<<(i++)<<" "<<(++i)<<endl;     return 0; }
输出为:7 6 6 解释:从右往左,先是(++i),即先自增,再读入缓冲区,为6。再是(i++),即先读入缓冲区,为6,再自增。最后是i,读入缓冲区为7.
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部