刚接触C语言发现递归函数一开始没能理解过来,看了分析结果才知道怎么运算的。
一个简单的例子
推理
- 首先是调用函数 factorial(5),然后开始分解
- factorial 函数体内根据参数 n 去判断递归逻辑
- factorial(5) = 5*factorial(4)
- factorial(4) = 4*factorial(3)
- factorial(3) = 3*factorial(2)
- factorial(2) = 2*factorial(1)
- factorial(1) = 1 // 递归结束,直接返回1
- 所以最后的计算过程就变成了 5*4*3*2*1 等于 120