不是末班车 发表于 2023-9-7 19:08:43

递归调用 为啥结果是1-10 而不是10-1

#include <stdio.h>

//函数的递归调用指的是调用函数本身
//正在函数递归调用时需要有函数的出口
//递归函数在占区内存中占有资源会比较多

void fun(int a)
{
       
        //函数的出口
        if(a==0)        //如果if后面加的时一条语句,可以不用加括号
                return;
        fun(a-1);
        printf("%d\n",a);
}

int main(void)
{
        int a = 10;
        fun(a);
        return 0;
}


isdkz 发表于 2023-9-7 19:08:52

这个代码中的递归函数fun是从10开始递减到0的。当fun(a-1)被调用时,fun函数会再次调用自身,直到a的值为0时,递归终止。然后,递归函数从最底层开始返回,依次打印出1到10的值。

所以,结果是1-10,而不是10-1。
页: [1]
查看完整版本: 递归调用 为啥结果是1-10 而不是10-1