所以,我首先要说是的,这是家庭作业,但不,我不只是在寻找答案,我只是想了解如何解决这个问题。
我正在寻求帮助的问题给出了一个“骨架”的C ++程序:
int a, b, c, d; //global variables
void Sub1(); //prototype
void Sub2(); //prototype
void main () {
int a, b, c;
. . . <---------- marked point 1
}
void Sub1() {
int b, c, d;
. . . <---------------- marked point 2
while (. . .) {
int c, d, e;
. . . <-------------- marked point 3
}
. . .
} //end Sub1
void Sub2() {
int d, e;
. . . <----------------- marked point 4
}
我遇到问题的问题是“识别嵌套在另一个范围内的范围。例如:从第3行开始到第4行结束的范围嵌套在从第1行开始到第8行结束的范围内。 “
首先,我不明白这个例子是这样一个范围的正确例子。我可能会对范围究竟是什么感到困惑,但我认为因为Sub1()和Sub2()在任何函数之外声明,它们将是全局的,因此它们的范围将从第1行到结尾。程序。请帮助我理解为什么他们的范围是从第1行到第8行,也许我可以理解如何完成这个问题。
答案 0 :(得分:-1)
你对行号的引用并没有多大意义,但除此之外,范围很简单:
考虑&#34;当前&#34;您所在的范围(最内层{ }
中的所有内容)如果您看到在具有给定名称的花括号内声明的变量,则该范围将使用该变量。如果找不到该名称,请查看其父作用域,依此类推。如果没有花括号,那么请参考全局变量。