答案 0 :(得分:0)
这很有意思,因为我自己正在研究这个以递归方式走树的程序。根据您的问题,我发现以下内容是最简洁明了的演示: https://msujaws.wordpress.com/2011/05/03/static-vs-dynamic-scoping/
完全相同的代码会产生不同的结果。关键在于bar方法,其中b设置为2.在静态作用域中,int在方法中声明保持在该方法的本地。当调用foo时,在bar中声明的int b不在范围内,但是更高级别的const b是并且两次都被使用。
在动态作用域中,解析了调用链,因此在调用foo时使用了bar中的int b。