关于静态和动态范围问题的问题
您能否确认我对以下代码的回答:
procedure main
var x,y,z;
procedure sub1
begin
var x,z
x := 6;
z := 7;
sub2();
x := y*z + x;
print(x);
end
procedure sub2
begin
var x,y
x := 1;
y := x+z+2;
print(y);
end
begin
x := 1; y:=3; z:=5;
sub1();
sub2();
end
我有:
静态的:
8
27
动态:
10
27
那是对的吗?
没有找到相关结果
已邀请:
2 个回复
佃蒜狗掂哥
中声明的
变量将影响在
中声明的变量,即使在
内也是如此。但是在
中声明的
不会影响
中声明的
的值,所以
在调用
后读取
时仍使用原值6。 但是,您的分析不完整。每次应打印三个值,而不仅仅是两个。在这两种情况下,打印的第三个值应为8。
门锑腺潮