【发布时间】:2011-12-04 19:59:59
【问题描述】:
大家好,我今天偶然发现了这段代码,我对到底发生了什么感到困惑,更具体的说是什么顺序:
代码:
#include <iostream>
bool foo(double & m)
{
m = 1.0;
return true;
}
int main()
{
double test = 0.0;
std::cout << "Value of test is : \t" << test << "\tReturn value of function is : " << foo(test) << "\tValue of test : " << test << std::endl;
return 0;
}
输出是:
Value of test is : 1 Return value of function is : 1 Value of test : 0
看到这一点,我会假设在调用函数之前以某种方式打印了最正确的参数。所以这是从右到左的评价??在调试期间,虽然似乎在输出之前调用了该函数,这是我所期望的。我正在使用 Win7 和 MSVS 2010。感谢任何帮助!
【问题讨论】:
标签: c++ visual-studio stdout language-lawyer