#include<stdio.h>
#include<conio.h>
int f(int & ,int );//function prototype
main()
{
int x,p=5; //p is initialized to 5
x=f(p,p);
printf("\n Value is : %d",x);//print the value of x
getch();
}
int f (int & x, int c)
{
c=c-1;
if (c==0) return 1;
x=x+1;
return f(x,c) * x; //recursion
}
输出:6561
谁能解释一下程序的流程这个问题来自我无法理解的门。似乎该函数是用 p = 5 的值调用的。它在函数 f 中被 int &x 捕获,问题就在这里。是值,即 5 存储在 x 中还是 x 的地址中。