源码

c阶段程序中的递归


你好,我有这段代码,我根据其他一些递归和阶乘程序编码
但我的问题是,我真的很困惑它如何存储值并保留它,然后在最后返回它

int factorialfinder(int x)
{
    if (x == 1)
    {
        return 1;
    }else
    {
        return x*factorialfinder(x-1);
    }
}
int main()
{
  cout << factorialfinder(5) << endl;
}

因此5进入,并通过一次又一次地调用它的函数乘以4,然后它变为1并返回阶乘答案

为什么?我不知道它是如何存储的,为什么返回1返回实际答案,它到底在做什么?

(0)

本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/cjieduanchengxuzhongdedigui.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9月 27, 2019 at 03:01 上午

热评文章