执行下面 C++ 代码将输出 $11$。
int x = 10;
void f() {
int x = x + 1;
cout << x << endl;
}
int main() {
f();
}答案B。指针和数组的代码追踪:画出变量和指针的内存示意图,追踪每次赋值后值的变化。
指针和数组追踪时画内存布局图可以大大简化理解。
【考点】局部变量作用域|变量初始化规则|函数作用域遮蔽
GESP 四级《C++ 语言基础》模块,命题人专卡"局部变量遮蔽全局变量"这一基础概念。绝大多数考生看到 int x = x + 1; 会下意识认为 x 指全局变量,却忽略了局部作用域优先原则——这是四级及以上考生最容易栽跟头的地方。