以下哪种参数传递方式可以避免拷贝大型对象?
答案D。函数必须有函数名。函数可以没有参数,可以没有返回值(void类型),定义可以在调用之后(需提前声明)。
函数必须有名称,但可以有默认参数。参数默认以值传递(传值)。函数未被调用时参数不占内存。
【考点】函数参数传递|引用传递|指针传递
GESP 四级 C++ "函数与参数"模块,考点为"值传递、引用传递、指针传递"。命题人想卡住"只背结论、不追本质"的考生——他们知道引用和指针都不拷贝,但容易把"只能"听成排他性条件。
解题先盯"拷贝"二字:值传递是对象全量复制,耗时耗内存;引用传递是别名传递,指针传递是地址传递,两者都不复制对象本身。通法是:参数类型看是否含&或*,含则无拷贝。
A项"值传递"是最大陷阱,学生常误以为"引用更安全",但题目问的是"避免拷贝",值传递恰恰最易拷贝;B项"只能引用"、C项"只能指针"都是排他性错误,命题人用"只能"二字诱导考生忽略另一种同样可行的方式。
反命题:若题目改成"必须允许修改原对象",答案仍是D;若语言是Java,因对象默认引用传递,答案会变。刷到此类题先问:命题人想考我"传递机制"还是"对象大小"?