浅析C++中cout的运行机制_C语言教程-查字典教程网
浅析C++中cout的运行机制
浅析C++中cout的运行机制
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:#includeusingnamespacestd;inthello1();inthello2();intmain(){i...

复制代码 代码如下:

#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流的操作顺序是:先从右往左读入缓冲区,然后再从左往右输出。所以它从右边往左读的时候,碰到了函数当然去执行函数先了,然后把函数返回值读入缓冲区再然后。。。就是从左输出了。

根据这个解释,有实验的几个程序,能加深点理解

程序1:

复制代码 代码如下:

#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.

程序2:

复制代码 代码如下:

#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.

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新C语言学习
    热门C语言学习
    编程开发子分类