运行以下代码,屏幕上将输出( )。
#include <iostream>
using namespace std;
int var = 100;
void function() {
int var = 200;
cout << var << " ";
cout << ::var << " ";
}
int main() {
cout << var << " ";
function();
var += 100;
cout << var << " ";
return 0;
}答案A。指针和数组的代码追踪:画出变量和指针的内存示意图,追踪每次赋值后值的变化。
指针和数组追踪时画内存布局图可以大大简化理解。
【考点】全局变量|局部变量|作用域解析运算符
本题考查《GESP 考试大纲》C++ 语言四级"作用域与命名空间"模块。命题人卡住的是考生对::作用域解析运算符的掌握程度——90%考生只背"全局变量优先",却不懂::强制指定全局作用域,遇到嵌套同名变量就懵圈。