GESP 四级 · GESP 202509 C++ 四级 第 1 题

选择题 · 答案 B · 考点:指针与内存

← 整套速查表 GESP 四级 全部真题

题目

运行下面程序后变量 a 的值是( )。

int a = 42;
int* p = &a;
*p = *p + 1;
答案:B

考点

指针与内存

解题思维

答案B。指针和数组的代码追踪:画出变量和指针的内存示意图,追踪每次赋值后值的变化。

常见错误

指针和数组追踪时画内存布局图可以大大简化理解。

详细解析(节选)

【考点】指针与内存地址|解引用与赋值|C++变量作用域

🎯考纲定位:GESP四级"C++基础语法”模块,命题人专盯"指针即地址"的抽象难点,90%考生死在"指针不直接等于值"的盲区。

🧠解题思维:先求值再写回——*p等价于a,*p+1即a+1,赋值给*p等于a=a+1,a由42变43。通法是"解引用=取内容,赋给*指针=改内容",别把指针当成普通变量。

🪤陷阱拆解:A错在把*p当独立变量(指针不直接等于值);C错在以为指针操作有副作用(C++无编译错误);D错在把指针当容器(指针地址固定)。最阴险的是"*p=*p+1"看似绕弯,实则就是"a=a+1"。

🔄反命题思维:若把*p=*p+1改成*p=5,a直接变5;若改为int*p=nullptr; *p=*p+1; 则程序崩溃。刷到指针题先问"这行到底在改谁的内容"。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断