我无法理解动态范围。所以我尝试解决下面的例子:
a=4
func f1(x){
x=x*a;
print(x)
}
func f2(y){
a=2
a=y-a
f1(a)
print(a)
}
main(){
f2(a)
}
我被要求假设参数是通过引用传递的。
我在想,因为 'y' 和 'a' 指的是同一个内存空间(y 只是 f2 的形式参数),所以在控制移动到 f1 之前,两者的值都将为 0。我对么?相同的逻辑是否适用于 f1?如果不是,正确的方法是什么?