int f(int &x, int c)
{
c = c - 1;
if (c == 0) return 1;
x = x + 1;
return f(x, c) * x;
}
int x = 5;
cout << f(x,5);
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,可供选择的四个可能答案是:
函数f(int&x,int c)在第一次调用之后被调用四次,然后到达返回结果为6561的基本情况.我的猜测是3024,但我错了.即使通过引用传递的x变量在每次调用f(int&x,int c)时递增并分别取值6-> 7-> 8-> 9,此递归的最终结果等于9 ^ 4.所以我的问题是:变量x通过引用传递,当它到达基本情况时等于9.这是否意味着递归的所有阶段都将具有变量x的这个值,即使它们在被调用时具有不同的值?