我看过阶乘 prgrm 。我的问题是,每当调用递归时,如何在每次函数调用期间检索变量值?为什么当 number 达到 1 时我们需要返回 1 ?如果它返回 1 那么为什么它不显示输出 1
最佳答案
例如代码:
int fact(int n)
{
if(n <= 1) return 1;
return n*fact(n-1);
}
n 的作用域是本地的,因此在每个递归调用中都在函数参数中设置为检索,因此 fo 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
关于c - 当函数调用 self 时,递归函数如何处理函数内部的局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34003940/