首页 > 试题广场 >

以下关于引用和指针的描述,正确的是

[不定项选择题]
以下关于引用和指针的描述,正确的是()
  • 引用和指针都是指向变量的内存地址
  • 引用可以表示指针
  • 引用和指针都是实现多态效果的手段
  • 引用本身是目标变量的别名,对引用的操作就是对目标变量的操作

实际上"引用"可以做的任何事情"指针"也都能够做,为什么还要"引用"这东西?

答案是"用适当的工具做恰如其分的工作"。

指针能够毫无约束地操作内存中的任何东西,尽管指针功能强大,但是非常危险。

如果的确只需要借用一下某个对象的"别名",那么就用"引用",而不要用"指针",以免发生意外。

发表于 2018-09-04 10:56:49 回复(0)
A.引用和指针都是指向变量的内存地址,错误。
        引用等价于* const ptr,也就是对一个指针常量取值,指针才能指向内存地址,这也解释了引用为什么必须要初始化,且后面无法修改引用。int a =10; int& r = a;在编译器底层就已经替换成r = *const ptr = *(&a),这就解释了为什么对引用取地址和原变量相等,看起来变量和引用使用相同的地址,因为&(&*)a= ptr = &a。
B.引用可以表示指针,正确。
        指针的引用是存在的
C.引用和指针都是实现多态的手段,正确。
        根据引用和指针的关系,当然指针能多态,引用就能多态。
D.引用本身是目标变量的别名,对引用的操作就是对目标变量的操作,正确。
        这个算C++ primer中的原话,没什么好说的。

编辑于 2021-11-09 12:31:54 回复(1)
<p>引用指向变量内存地址,其实也不能说它就错了,还需要考究一下</p>
发表于 2020-09-26 16:51:23 回复(2)
<p>但引用好像是指针的包装,底层还是指针,那为什么A错误呢?</p>
发表于 2020-09-13 09:10:44 回复(4)
这题似乎有点不严谨,如果是编译器将引用识别为指针,而C++的定义将引用看作是变量的别名,只有这样才能勉强解释一下。
发表于 2023-03-01 09:34:16 回复(0)
1. B不清楚
2. C项。使用基类指针或引用调用虚函数时,该调用将被动态绑定。(虚函数运行时绑定)
发表于 2022-01-22 16:37:36 回复(0)
别出这种有歧义,含糊不清,没有共识的题目,OK吗草
发表于 2024-04-21 17:32:27 回复(0)
指针是说指针变量指向的是内存地址
发表于 2023-03-18 11:18:55 回复(0)
形象的来说,一个数据的存储涉及“房子”、“门牌号”、“房子里面的空间”,“房子”对应的概念是变量名,同时对应变量别名,而“门牌号”对应地址,指针的意义就是存这个“门牌号”(即地址),以便访“房子里面的空间”(其实可以把指针本身也看做一个房子,其房子里面的空间放着另一个房子的门牌号),“房子里面的空间”对应存储着的数据
发表于 2022-08-27 11:31:45 回复(0)
引用的实现不是通过  指针常量实现的吗?
发表于 2021-10-27 15:33:40 回复(0)