运行如下代码会输出( )。
int value = 100;
void print1() {
int value = 50;
cout << value << " ";
cout << ::value << " ";
}
void print2() {
cout << value << " ";
}
print1();
print2();答案C。指针和数组的代码追踪:画出变量和指针的内存示意图,追踪每次赋值后值的变化。
指针和数组追踪时画内存布局图可以大大简化理解。
【考点】作用域解析运算符 | 变量遮蔽 | 全局变量
考查 GESP 四级"程序调试与问题诊断"模块中关于作用域规则的掌握程度。命题人专门设计这道题,就是要卡住那些只背"局部优先"却不知如何用 :: 强制访问全局变量的考生——这是 C++ 初学者最容易混淆的知识点。