随笔小屋 Logo
首页
瞬间
反馈
随笔小屋 Logo
首页 瞬间 反馈
  1. 首页
  2. c语言
  3. 递归函数

递归函数

  • c语言
  • 发布于 2025-08-18
  • 69 次阅读
flor
flor
#include <stdio.h>

void bar(int n){
    if(n == 1){
        printf("1\n");
        return;          // 递归基
    }
    bar(n - 1);          // 递归调用 (向下/压栈)
    printf("%d\n", n);   // 回溯阶段 (向上/出栈)
}

int main(void){
    bar(3);
    return 0;
}

调用阶段(压栈) 回溯阶段(出栈)

bar(3)

-> n==1? 否

-> 调 bar(2)

bar(2)

-> n==1? 否

-> 调 bar(1)

bar(1)

-> n==1? 是 -> 打印 1 -> return

<- 回到 bar(2) 继续 -> 打印 2 -> return

<- 回到 bar(3) 继续 -> 打印 3 -> return

结束

输出顺序: 1 2 3

湘ICP备2025147565号-1
gongan beian 湘公网安备43102602000213号
CPU --% | 内存 0.00G/0.00G (0%) | 网络 无活动网卡
服务器资源占用 更新时间 --:--:--