cout输出流的执行顺序
2013-09-03 19:11 youxin 阅读(502) 评论(0) 编辑 收藏 举报一道题目:
#include <iostream> using namespace std; int g = 0; template<typename T> int foo() { int value = ++g; return value; } int main() { cout << foo<int>() << foo<char>() << foo<float>() << foo<double>() << endl; return 0; }
结果是1234,而是4321。百思不得其解,后来在网上搜了下,发现cout的输出顺序有如下规律:
计算顺序:自右至左
输出顺序:自左至右
也就是说cout在计算的时候是先计算foo<double>()的值为1,再计算foo<float>()的值为2,。。。所以输出是4321。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步