为什么在C ++中指向引用的指针是非法的? [英] Why are pointers to a reference illegal in C++?
问题描述
正如标题本身所提到的那样-为什么引用的指针非法,而在C ++中则相反?
As the title itself mentions - why are pointer to a reference illegal, while the reverse is legal in C++?
谢谢.
推荐答案
指针需要指向对象.引用不是对象.
A pointer needs to point to an object. A reference is not an object.
如果有引用r
,则一旦对其进行初始化,则每次使用r
时,实际上就是在使用引用所引用的对象.
If you have a reference r
, once it is initialized, any time you use r
you are actually using the object to which the reference refers.
因此,您不能首先获取引用的地址才能获得指向它的指针.考虑以下代码:
Because of this, you can't take the address of a reference to be able to get a pointer to it in the first place. Consider the following code:
int x;
int& rx = x;
int* px = ℞
在最后一行中,&rx
接受rx
所引用的对象的地址,因此它与您所说的&x
完全相同.
In the last line, &rx
takes the address of the object referred to by rx
, so it's exactly the same as if you had said &x
.
这篇关于为什么在C ++中指向引用的指针是非法的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!