C ++将引用转换为指针?

时间:2018-08-23 15:18:05

标签: c++ pointers reference

在下面的代码中,recordedModel()返回对Model的引用。该函数希望返回一个指针,C ++中是否有一种方法可以将引用转换为指针?

1 个答案:

答案 0 :(得分:2)

  

C ++中是否有一种方法可以将引用转换为指针?

由于引用不是对象,因此它们没有地址,并且不能有指向引用的指针。

但是,可以的,您可以获得指向所引用对象的指针。有一个地址运算符&,该运算符返回对象的地址。地址值的类型是指针。 address-of运算符是间接寻址运算符*的逆运算符,它以内存地址(指针)为操作数,并导致一个左值对象存储在该地址。当应用于引用时,address-of运算符将返回所引用对象的地址。

请注意,address-of运算符可以重载,因此在通用代码中,如果重要的是获取对象的实际地址而不是其他类型的内容,则您可能不知道类型具有的重载。重载可能会返回,那么应该使用std::addressof函数而不是address-of运算符。