c++输出流cout的
来源:互联网 发布:j2直播软件 编辑:程序博客网 时间:2024/06/09 21:34
1:第一的例子:
#include <iostream>
using namespace std;int main()
{
const int a[] = {10,20,30};
const int *p = a;
cout<<"*p:"<<*p<<endl;
cout<<"*p:"<<*p<<"\t*p++:"<<*p++<<"\t*p"<<*p<<endl;
return 0;
}
/*输出为: *p:10 *p:20 *p++:10 *p:10
*/
从上边的例子中可以看出来cout的计算顺序是从右向左 ,首先解引用*p 得到第一个元素10,然后在第二个输出语句中从右向左,首先解引用得到10,然后计算*p++,关于*p++ 的计算可以参考:比如i = 3; cout<<i++<<endl;同样输出3,因为首先输出i,然后才改变i的值。输出时,首先输出*p 也是10,但是这个式子计算后*p就变成了第二个元素了20,即第一个*p是20,后边的输出为10
文章来自:http://www.cnblogs.com/newpanderking/archive/2012/03/25/2416465.html
2:第二个例子:
int fun1()
{
}
int fun2()
{
}
int main()
{
}
输出结果是
num2
num1
1
为什么呢?为什么不是num11num22呢?这里涉及到cout输出流的执行顺序问题。
cout的输出顺序有如下规律:
计算顺序:自右至左
输出顺序:自左至右
cout作为输出流,有一个缓冲区,先从右往左将输出读入缓冲区,在从缓冲区中读出(类似堆栈)
假设a = 1; b = 2; c = 3;
cout<<a<<b<<c<<endl;
缓冲区:|3|2|1|<-
输出:|3|2|<-
结果就是123.
在一开始的例子中,从右往左读入,先执行fun2(),输出num2,并将返回值2保存进缓冲区,再执行fun1(),输出num1,并将返回值1保存进缓冲区。最后开始读取缓冲区中的内容,输出1 2。
文章来自于:http://blog.sina.com.cn/s/blog_62fc96e601012n5z.html
- 【C++】输出流cout方法
- c++输出流cout的
- cout的输出流顺序
- C/C++的格式化输出(2)--cout
- C++输出流cout的顺序问题
- cout输出流的执行顺序
- cout输出流的执行顺序
- cout的输出
- cout的输出格式
- cout的二进制输出
- Cout输出的原理
- Cout输出的原理
- cout的格式化输出
- cout的输出形式
- cout的输出顺序
- cout的格式化输出
- cout的格式输出
- (C++)cout格式化输出示例
- 关系型数据库
- 习题7-7 Egyptian Fractions (HARD version) 埃及分数 (IDA*)
- java笔记之重写,抽象
- 集合框架
- 1034. 有理数四则运算(20)
- c++输出流cout的
- Hadoop 的 Oozie 工作流管理引擎的实际应用(二)
- ISE FPGA时钟系统
- 开源的Bundle管理
- GUI
- Problem3-1013
- unity在wp8.1平台下添加微软广告
- Javascript基础2
- 今天下了场好大的雨