c - 当函数调用 self 时,递归函数如何处理函数内部的局部变量?

标签 c recursion

我看过阶乘 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/

相关文章:

c - Linux CPU 隔离和互斥

c - 使用 getchar() 获取未知长度的整数

c - 将 matlab 脚本转换为 C 程序的移动平均线

c - 模幂函数返回错误的 int 值

python - 从字典中删除嵌套键

c - 双指针地址加法问题

algorithm - 检测调度程序时间轴上的冲突(算法)

java - 递归迭代

c - C 中递归函数的扫雷问题

java - java中的递归函数不起作用