递归是自己调用自己,只是不同的是,被调函数虽然和运行的函数是一个代码体,但是因为调用点不同,调用时的状态不同,返回点不同,因此可以看为是函数的副本,我们就可以把他们看为两个函数,他们是独立的。发生函数调用时,被调用函数中保护了调用函数的运行环境和返回地址,使得函数的状态可以在被调函数运行返回后完全恢复。从该点我们也可以看出,调用函数和被调函数内的数据也是无关的,毕竟都临时存放在不同的地址上。函数之间靠参数传递和返回值来联系。
递归是自己调用自己,只是不同的是,被调函数虽然和运行的函数是一个代码体,但是因为调用点不同,调用时的状态不同,返回点不同,因此可以看为是函数的副本,我们就可以把他们看为两个函数,他们是独立的。发生函数调用时,被调用函数中保护了调用函数的运行环境和返回地址,使得函数的状态可以在被调函数运行返回后完全恢复。从该点我们也可以看出,调用函数和被调函数内的数据也是无关的,毕竟都临时存放在不同的地址上。函数之间靠参数传递和返回值来联系。