有什么办法可以找到参考地址?

有什么办法可以找到参考地址?


使其更具体:变量本身的地址,而不是初始化变量的地址。


绝地无双
浏览 764回答 3
3回答

函数式编程

引用没有自己的地址。尽管可以将引用实现为指针,但是并不需要或不能保证。C ++常见问题说得最好:与指针不同,一旦将引用绑定到对象,就不能将其“重新定位”到另一个对象。引用本身不是对象(它没有身份;使用引用的地址会为您提供引用对象的地址;请记住:引用是其引用对象)。另请参阅我的答案,以获取有关引用与指针的不同之处的完整列表。

烙印99

NO。无法获取引用的地址。那是因为引用不是对象,它是别名(这意味着它是对象的另一个名称)。int&nbsp; x = 5;int& y = x;std::cout << &x << " : " << &y << "\n";这将打印出相同的地址。这是因为“ y”只是对象“ x”的另一个名称(别名)。

明月笑刀无情

ISO标准说得最好:不应有对引用的引用,也不应有引用数组,也不能有指向引用的指针。我不喜欢很多人在这里使用的逻辑,因为您不能将引用“保证无论如何都只是一个指针”,所以您不能这样做。正如int x可能只是一个没有地址的处理器寄存器,但在& x使用时神奇地成为一个内存位置一样,编译器仍然可能允许您想要的内容。过去,许多编译器的确可以完全满足您的要求,例如int x, y;int &r = x;&r = &y; // use address as an lvalue; assign a new referent我刚刚检查了一下,GCC会编译它,但是带有强烈的警告,结果程序被破坏了
打开App,查看更多内容
随时随地看视频慕课网APP