浅析C++ cout语句执行过程
来源:互联网 发布:最早截止时间优先算法 编辑:程序博客网 时间:2024/05/22 06:10
浅析C++ cout语句执行过程
先上一段代码
#include <iostream>using namespace std;int a = 1;int fun1() { cout << "fun1" << endl; return a;}int fun2() { cout << "fun2" << endl; return a++;}int main() { cout << fun1() << " " << fun2() << endl; return 0;}
输出结果为:
fun2
fun1
2 1
出现这样的结果是因为cout语句是从后向前执行<<操作符。参数的压栈顺序是从右向左,输出测试从左向右。
结合原理,就很容易理解上面代码的工作过程。cout是先执行了最后面的参数fun2(),然后就调用了fun2函数,
输出了"fun2",返回a++(注意这里是a++,先将a的值1返回后,再自增为2),将这个值(值为1)压栈。
接着到fun1(),也一样。此时将值2压栈。输出的时候,根据栈的特点。先输出2,再1。所以就有了以
上的结果。
0 0
- 浅析C++ cout语句执行过程
- 浅析cout
- select 语句执行过程
- for语句执行过程
- sql语句执行过程
- Oracle 语句执行过程
- sql语句执行过程
- 浅析ThreadPoolExecutor的执行过程
- SQL语句解析过程浅析
- 为什么“cout << &c << endl;”这个语句有问题?
- h2database源码浅析:SQL语句的执行
- SQL语句的执行过程
- SQL语句的执行过程
- SQL语句的执行过程
- Oracle SQL语句执行过程
- sql 语句的执行过程
- for语句的执行过程
- oracle执行存储过程语句
- 设计模式学习之——六大设计原则之四:接口隔离原则
- HDFS余额不足之时
- 从11月11号开始我要将我儿时的梦想初步完成(2009年的回忆)
- Spring框架之Filter应用
- [2014-3-17]字符和字符串处理
- 浅析C++ cout语句执行过程
- CF236 B. Trees in a Row
- 由一道面试题引发的“血案”(静态变量,虚函数,构造/析构函数调用顺序等)
- 在编写图形界面软件的时候,经常会遇到处理两个矩形的关系。
- 硬盘的格式化
- 002_022 Python 计算目录间的相对路径
- 更改一个链接的文本、URL 以及 target
- Codeforces Round #236 (Div. 2)__Trees in a Row
- 黑马程序员——枚举