执行下面 C++ 代码后,输出的是 $20$。
int point(int* p){
return *p * 2;
}
int main() {
int a = 10;
int* p = &a;
*p = point(p);
cout << *p << endl;
}答案A。指针和数组的代码追踪:画出变量和指针的内存示意图,追踪每次赋值后值的变化。
指针和数组追踪时画内存布局图可以大大简化理解。
【考点】指针|函数参数传递|解引用赋值
《GESP 考试大纲》C++ 四级"指针与数组"模块。命题人卡住的是"指针作为函数参数时,传递的是地址副本而非原指针本身",以及"解引用赋值"的优先级,这是四级指针题的高频考点。