关于cout执行顺序的问题

来源:互联网 发布:spark大数据 编辑:程序博客网 时间:2024/05/21 10:00

下面有一个例子:

               

这个模型和stack的执行方式是一样的。

这个以前没有注意过,现在还是要记好了。

下面还有个例子据说是一道人人网的面试题目:

运行的结果是234321

 下面是分析如何得到的:cout是从后向前执行,<<操作符的递归调用,先递归执行的是最后一个,么参数压栈的顺序是从右向左。这样foo<char>()会先调用,全局变量g变成1.之后foo<int>会给value初始化为2,foo<bool>中value就是3,foo<float>中的value也会初始化为4.接下来的foo<boo>中的value是不会再初始化,而是使用上次的值,所以仍为3.

 

 

原创粉丝点击