int x;
int main() {
x = 14;
f();
g();
}
void f() {
int x = 13;
h();
}
void g() {
int x = 12;
h();
}
void h() {
printf("%d\n",x);
}
如果使用静态范围,结果是什么?如果使用动态范围,结果是什么?
现在,如果我正确理解范围,静态和动态范围之间的区别在于静态使变量成为类的本地变量。因此,该值x
将是本地的void f()
,void g()
并且int main ()
动态将使它们在全球范围内可用。我只是不确定如何将其应用于此代码。如果使用静态范围,它只会打印最后一个值(来自 的 12 void g()
),而动态范围将使用 的所有值x
?
我对范围界定的实际工作方式有点困惑。我知道C
虽然使用静态范围。