我正在编写类似于下面代码的东西,我不小心在函数定义的主体内部调用了相同的函数.
double function(double &value)
{
//do something with a here
if(some condition)
{
function(a);
}
return a;
}
Run Code Online (Sandbox Code Playgroud)
考虑一下这种形式:
int function(int &m) {
m = 2*m;
if(m < 20)
{
function(m);
}
return m;
};
int main() {
int a = 2;
std::cout <<"Now a = "<<function(a);
return 1;
}
Run Code Online (Sandbox Code Playgroud)
据我说,这不应该运行,更不用说编译了.但它确实运行并给出正确的结果
现在a = 32
在我完成定义它之前,我已经调用了该函数.然而,它有效.为什么?