当函数调用self时,Recursion函数如何处理fnction中的局部变量?

时间:2015-11-30 17:01:46

标签: c recursion

我见过了阶乘prgrm。我的问题是每次调用递归时如何在每次函数调用期间检索变量值? Nd为什么我们需要在数字达到1时返回1。如果它返回1那么为什么它不显示输出1

1 个答案:

答案 0 :(得分:0)

E.g代码:

int fact(int n)
{
    if(n <= 1) return 1;
    return n*fact(n-1);
}

n的作用域是本地的,因此在每个revursive调用中都会在funtion参数中设置为retrieve,所以3:

for fact(3) -> n1 = 3
for fact(2) -> n2 = 2
for fact(1) -> n3 = 1

> Then fact(3) = n1*n2*n3 => 3*2*1 = 6