浅析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
原创粉丝点击