每一次递归调用都将过程(精确地说是“变量”)在内存中复制一遍。一旦一个过程结束(会返回一些数据),这个过程在内存中的副本就被丢弃。递归看似简单,但是可视化跟踪执行过程就很花费时间。好了,让我们来看下面的例子:
这个例子中我们假设调用Print函数是传递的参数n=4,内存分配的图示是这样的:
再来看下阶乘函数:
流程图如下:
每一次递归调用都将过程(精确地说是“变量”)在内存中复制一遍。一旦一个过程结束(会返回一些数据),这个过程在内存中的副本就被丢弃。递归看似简单,但是可视化跟踪执行过程就很花费时间。好了,让我们来看下面的例子:
这个例子中我们假设调用Print函数是传递的参数n=4,内存分配的图示是这样的:
再来看下阶乘函数:
流程图如下: