变量作用域:全局与局部
变量作用域:全局与局部
掌握变量作用域的概念,理解全局变量与局部变量的区别。
作用域指名字在哪些代码行可见。局部变量在函数或块内定义,只在该范围内有效;全局变量在函数外定义,从定义处到文件末(或 extern 规则内)都可访问。内层同名会遮蔽外层同名变量。
四级客观题爱考:输出序列、某变量是否可访问、全局与局部谁先谁后。编程时要避免过度依赖全局变量——难维护,也容易在函数间产生隐蔽耦合;但读题时必须会追踪全局值在多次函数调用间的变化。
int g = 1;
void f() {
int g = 2; // 局部 g 遮蔽全局 g
cout << g; // 输出 2
}
见到同名变量,先问「当前在哪一层花括号里」,再决定访问的是哪一个。
执行下述代码将输出( )。
int x = 10;
void func() { int x = 20; std::cout << x; }
int main() {
func();
std::cout << x;
return 0;
}
运行如下代码会输出( )。
int value = 100;
void print1() {
int value = 50;
cout << value << " ";
cout << ::value << " ";
}
void print2() {
cout << value << " ";
}
print1();
print2();
下面这段代码会输出( )。
int x = 5;
void foo() {
int x = 10;
cout << x << " ";
}
void bar() {
cout << x << " ";
}
int main() {
foo();
bar();
}
执行下面 C++ 代码将输出 11。
int x = 10;
void f() {
int x = x + 1;
cout << x << endl;
}
int main() {
f();
}
执行完下面的代码后,输出是( )。
int a = 1;
void test() {
int a = 2;
{
int a = 3;
a++;
}
a++;
cout << a << " ";
}
int main() {
test();
cout << a;
return 0;
}
执行下面程序后输出为( )。
int x = 3;
void f(int& x){
x += 2;
}
int main(){
int x = 10;
f(x);
cout << x << " " << ::x;
}
下面程序执行后输出 2010。
int x = 10;
void f() { int x = 20; cout << x; }
int main() {
f();
cout << x;
}
关于下面程序,说法正确的是( )。
void show() {
int stars = 5;
}
int main() {
cout << stars;
return 0;
}