执行下面程序后输出为( )。
int x = 3;
void f(int& x){
x += 2;
}
int main(){
int x = 10;
f(x);
cout << x << " " << ::x;
}答案A。指针和数组的代码追踪:画出变量和指针的内存示意图,追踪每次赋值后值的变化。
指针和数组追踪时画内存布局图可以大大简化理解。
【考点】引用传递|作用域解析运算符|变量作用域
GESP 四级 C++《函数与过程》模块,考查引用参数与全局变量访问。命题人卡住的是"传引用≠改全局"的直觉误区——半数考生误以为 f(x) 会修改全局 x。