在 C 中,变量总是静态(或词法)作用域,即变量的绑定可以由程序文本确定,并且独立于运行时函数调用堆栈。
例如,以下程序的输出为 0,即 f() 返回的值与调用它的人无关。f() 总是返回全局变量 x 的值。
# include <stdio.h>
int x = 0;
int f()
{
return x;
}
int g()
{
int x = 1;
return f();
}
int main()
{
printf("%d", g());
printf("n");
getchar();
}