c ++指向引用的指针

Him*_*ury 9 c++

在C++中使用引用指针是否合法?

例如:

int &ref = array[idx];
func(&ref);
Run Code Online (Sandbox Code Playgroud)

如果func()已经存在于您无法更改的库中,我可以想到为什么您可能想要这样做的一个原因.

Jon*_*Jon 12

它不是.可以采用引用的地址,但"指向T的引用的指针"不是有效类型.你在这里做的是获取指向对象本身的指针,因为对对象的引用只是创建了另一个名称,您可以通过该名称访问该对象.

  • 不,引用不是对象本身.但是命名引用会导致对引用对象执行的操作,在这种情况下是操作地址. (2认同)
  • FAQ总的来说非常好,但是这个特定的答案有一些不幸的过度简化.这个错误在其他堆栈溢出问题中已经被打死了,但是最简单的证明,引用不是对象,是在调用析构函数时要考虑的. (2认同)

Ben*_*igt 9

该代码是合法的,但它不会创建指向引用的指针.它创建一个指向引用对象(指针)的指针.