其实不一定非要用栈来保存临时变量,只不过如果这个函数调用符合后进先出的特性,基于栈的数据结构的特性,用它是最顺理成章的选择。
Tips:
从调用函数进入被调用函数,对于数据来说,变化的是什么呢?
是作用域。所以根本上,只要能保证每进入一个新的函数,都是一个新的作用域就可以。而要实现这个,用栈就非常方便。在进入被调用函数的时候,分配一段栈空间给这个函数的变量,在函数结束的时候,将栈顶复位,正好回到调用函数的作用域内。
其实不一定非要用栈来保存临时变量,只不过如果这个函数调用符合后进先出的特性,基于栈的数据结构的特性,用它是最顺理成章的选择。
Tips:
从调用函数进入被调用函数,对于数据来说,变化的是什么呢?
是作用域。所以根本上,只要能保证每进入一个新的函数,都是一个新的作用域就可以。而要实现这个,用栈就非常方便。在进入被调用函数的时候,分配一段栈空间给这个函数的变量,在函数结束的时候,将栈顶复位,正好回到调用函数的作用域内。