gpt4 book ai didi

c - 我不明白这个递归

转载 作者:行者123 更新时间:2023-11-30 18:25:45 25 4
gpt4 key购买 nike

鉴于此代码:

void recursion(int x) {
if (x > 0) {
recursion(x-1);
printf("%d", x);
}
}

使用:

recursion(5);

为什么它打印 12345 ?我逻辑上遵循我认为它会打印 43210 的函数

编辑:抱歉,如果这对你来说可能看起来 super 愚蠢,但我仍在学习。

最佳答案

只需按照代码执行的步骤操作即可(使用调试器实时查看它发生的情况):

recursion(5);
if (5 > 0) recursion(4);
if (4 > 0) recursion(3);
if (3 > 0) recursion(2);
if (2 > 0) recursion(1);
if (1 > 0) recursion(0);
if (0 > 0) { // false, so if body skipped and function simply returns}
printf("%d", 1); // The next statement after the call recursion(0)
printf("%d", 2); // The next statement after the call recursion(1)
printf("%d", 3); // The next statement after the call recursion(2)
printf("%d", 4); // The next statement after the call recursion(3)
printf("%d", 5); // The next statement after the call recursion(4)

关于c - 我不明白这个递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23807084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com