C++学习记录-递归的运行顺序

递归的运行顺序:

示例代码:

1
2
3
void Print(int N) {
if (N!=0) { Print(N - 1); cout << N; }
}

传入 N=3

1.本层函数记为一层,N不等于0,执行if内的语句,调用自身(记为第二层)并传入2(N-1=2)

2.第二层函数运行,N不等于0,执行if内的语句,调用自身(记为第三层)并传入1(N-1=1)

3.第三层函数运行,N不等于0,执行if内的语句,调用自身(记为第四层)并传入0(N-1=0)

4.第四层函数运行,N等于0,结束,返回上一层(第三层)的断点处,第三层继续运行

5.第三层打印1,结束,返回上一层(第二层)的断点处,第二层继续运行

6.第二层打印2,结束,返回上一层(第一层)的断点处,第一层继续运行

7.第一层打印3,结束。

**总结:**递归在调用一个函数后,会先把调用的函数运行完,再返回自身的断点处继续运行