C语言递归问题求助
先列代码……
int main(void)
{
int a, b, c, n;
a = 1;
n = 3;
b = fact(n);
c = 2;
}
int fact(int n)
{
if(n < 1) return 1;
else return (n * fact(n - 1));
}
在调用函数前,需要把调用该函数的后面那条指令的地址入栈(我记得以前是这么学的,应该没错吧……)
那以我的理解,在第一次调用fact之前,就应该把c = 2;这条指令对应在地址入栈。
问题是:
在第二次或第三次循环调用fact函数的时候,应该被入栈的地址对应的指令又是哪一条呢?
想了好久感觉已经绕进去出不来了,望各位大神能指点一下,谢谢!