2016-05-04 90 views

回答

0

这很有趣,因为我正在自己研究一个程序来递归地走树。具体到您的问题,我发现以下是最简洁和清晰的演示: https://msujaws.wordpress.com/2011/05/03/static-vs-dynamic-scoping/

完全相同的代码会产生不同的结果。关键在于bar方法,其中b设置为2.在静态范围中,int b在该方法中声明的方法保持局部。当调用foo时,在bar中声明的int b不在作用域中,但更高级别的const b是和两次都使用。

在动态作用域范围内解析了调用链,因此在调用foo时使用了int b in bar。