在 C++ 中,引用一旦初始化并绑定到某个变量后,可以通过赋值语句将其重新绑定到另一个变量。
答案B。考点: C++变量/数据类型/赋值操作。
仔细审题,注意题目中的所有限定词和条件。不确定时用排除法缩小选项范围。
【考点】C++引用语义|GESP四级C++模块|基础语法陷阱
命题人把这道题放在四级C++模块,就是卡住那些只背语法、不懂语义的同学。引用和指针在C++里是两种完全不同的东西,但初学者最容易混淆,以为引用和指针一样可以重新指向别的变量。
看到题先想什么?先想引用的本质——它是别名,不是指针。引用绑定后,它永远指向那个变量,就像给变量起了个绰号,你改绰号不改本名。赋值语句给引用赋值,本质是给被引用的变量赋值,而不是改变引用绑定的目标。C++标准规定引用必须初始化且不可再绑定,这是语言层面的铁律,不是编译器特性。
A选项是命题人埋的坑,利用初学者把引用当成指针的惯性思维。指针可以重新指向,引用不能,这是C++语法铁律。B选项才是正确答案,但很多同学会选错,因为没理解引用的绑定是单向的。题目里"一旦初始化并绑定后"这几个字就是偷换概念——它把定义说成条件,诱导你以为后面还有变化空间。
如果题目改成"指针可以重新绑定",那答案就反过来了。如果改成"const引用不可重新绑定",那还是错。这道题最阴险的地方就是"一旦初始化并绑定"这几个字,听起来像条件,实际是定义。刷到类似题,先问自己:这是考语法还是考语义?