【发布时间】:2014-10-15 02:36:57
【问题描述】:
我和我的朋友在理解静态和动态范围方面遇到了一些麻烦。我相信对于动态,变量(全局)将不断被其他函数更新,直到打印出来,而对于静态,我认为首先分配给变量的任何值都会保持这种状态。
这种想法对吗?
作为一个使用我上面想法的例子,我从这段代码 sn-p 计算了以下内容。
int a, b, c;
void p() {
int a = 3;
b = 1;
c = a + b;
q();
}
void print() { printf(“%d %d %d\n”, a, b, c); }
void q() {
int b = 4;
a = 5;
c = a + b;
print();
}
main() {
int c = 5;
p();
}
Output with static scoping: 315
Output with dynamic scoping: 549
【问题讨论】:
-
这是关于什么语言的?请添加正确的标签。
标签: scope