下列关于 C++ 函数参数传递的说法,正确的是( )。
函数指针:bool (*Fx)(int) 声明一个指向"接收int返回bool"的函数的指针,可作为参数传递给其他函数(回调机制)。
函数指针和普通指针不同,函数指针指向的是代码段中的函数入口地址。声明格式:返回类型 (*指针名)(参数列表)。
【考点】按值传递|按引用传递|按指针传递
🎯 考纲定位 本题考查《GESP 202606 C++ 七级》"函数与参数传递"模块。命题人专挑"形参内存""值传递""引用""指针"四个高频混淆点,卡住多数考生对传递机制的本质理解,而非单纯考语法记忆。
🧠 解题思维 解题先区分三种传递:按值传递是复制一份,形参和实参内存独立;按引用传递是别名,形参就是实参的引用;按指针传递是传地址,形参存实参地址。再对应选项:A说"一定同一块内存"错在绝对化,值传递时显然不是;B说"值传递修改形参一定改实参"直接违背值传递定义;D说"指针形参不能改实参指向的数据"错在指针的本质就是改内存;C说"引用形参修改通常影响实参"符合引用别名机制,故正确。
🪤 陷阱拆解 A 选项用"一定"制造绝对化陷阱,忽略值传递的复制本质;B 选项直接偷换概念,把值传递说成引用传递的效果;D 选项反常识表述,指针形参恰恰是改实参数据的核心手段;C 选项用"通常"留有余地,避免极端情况(如 const 引用)干扰,是命题人最稳妥的正确表述。
🔄 反命题思维 若把 C 改为"指针形参修改的是实参的地址而非数据",则答案变 D;若把 A 改为"引用形参和实参一定用同一块内存",则 A 变为正确选项。刷到此类题先问:命题人想考我"传递方式"还是"内存布局"?