参考和指针在实现中有什么不同?

23 浏览
0 Comments

参考和指针在实现中有什么不同?

这个问题已经在其他地方有了答案

可能是重复问题:

C++中指针变量和引用变量的区别

我正在阅读Stanley Lippman的书《C++内部对象模型》。让我困惑的是对象的“引用”和“指针”之间的区别。我知道引用必须在声明时初始化,而指针可以留待以后初始化。但我想知道它们之间的物理实现差异。

为什么需要“引用”机制;它不是重叠指针的功能吗?在什么情况下应该使用引用而不是指针?非常感谢。

10:48 AM 11/20/2021

引用是从语义角度考虑的。

指针是从实现角度考虑的。

这有点像what和how之间的关系。

admin 更改状态以发布 2023年5月23日
0
0 Comments

大多数引用都是使用指针变量实现的,即一个引用通常占用一个内存单元。然而,仅在本地使用的引用可以被优化器消除。例如:

  struct S { int a, int b[100]; };  
  void do_something(const vector& v)
  {
    for (int i=0; i

在这种情况下,p不需要存储在内存中(也许它只存在于寄存器中,也许它消失在指令中)。

0
0 Comments

\n\n参考可以被视为隐式取消引用的常量指针(注意这一点)。一旦成为引用,它就一直是引用。它使编写代码更容易。除非带入移动语义和r值引用。标准没有强制规定引用应该如何实现,就像它没有强制规定指针应该如何实现一样。大多数情况下,指针与对象的地址是同义词。

0