C++ 是同时具有指针和引用的单一语言吗?

Did*_*set 2 c++ pointers programming-languages reference

在我所知道和接触过的编程语言中,C++ 看起来是唯一一种同时具有指针和引用的语言。这是真的吗?

Jer*_*fin 5

Algol 68 和 Pascal 确实如此。IIRC,艾达也这么做了,尽管我不记得所有细节了。PL/I 也这么做了——它可能(很容易)是第一个同时包含这两者的。

不过,Algol 68 的引用实际上更像是 C++ 指针。在 C++ 中,一旦初始化了一个引用,它总是引用同一个对象。在 Algol 68 中,您可以“重新设置”引用,因此它引用了不同的对象。

自从我使用 Pascal 以来已经有一段时间了,但如果没记错的话,它唯一使用引用的是参数传递(即参数var通过引用传递)。我认为除了作为参数之外,您无法创建引用。

Ada 允许您将参数标记为inout、 或inout。如果我没记错的话,一些inout参数被复制到函数中,然后在最后复制回调用者,但其他参数是通过引用传递的。正如我所说,我不记得细节了。