GESP 四级 · GESP 202506 C++ 四级 第 5 题

选择题 · 答案 C · 考点:函数

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

题目

在 C++ 中,如果希望通过函数修改传入的结构体对象的内容,应该使用哪种参数传递方式?

答案:C

考点

函数

解题思维

答案C。函数必须有函数名。函数可以没有参数,可以没有返回值(void类型),定义可以在调用之后(需提前声明)。

常见错误

函数必须有名称,但可以有默认参数。参数默认以值传递(传值)。函数未被调用时参数不占内存。

详细解析(节选)

【考点】函数参数传递|引用传递|指针传递

1. 🎯 考纲定位 GESP 四级《基础编程概念》模块,函数参数传递机制必考。命题人卡住的是——许多考生死记"值传递传副本、引用传递传地址"的结论,却不知两者在语义上的本质差异:值传递永远无法影响实参,而引用与指针都能直接操作原对象。

2. 🧠 解题思维 要修改结构体内容,函数内必须获得原对象的"可写访问权"。值传递(A、B前半部分)只是拷贝一份,改副本不改原物,直接排除。剩下引用与指针:引用是别名,指针是地址,两者都能让函数内操作直达实参,故 C 正确。

3. 🪤 陷阱拆解

最阴险处在于:C++ 中 void f(S& s) 与 void f(S* p) 调用语法完全相同 f(x),仅凭直觉无法区分,必须理解语义才能选对。

4. 🔄 反命题思维 若把题干改成"若希望函数内绝不能修改结构体,应选?"答案即变成"仅值传递"——命题人常通过否定形式考察同一知识点。刷到类似题先问自己:这题到底想让我区分"能不能改"还是"怎么改"。

/

同考点真题

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