指向另一个指针的指针(间接级别)?

Pointer to another pointer (levels of indirections)?

我有一个询问。这个话题很多人都知道,但我最近才遇到它,我可能有一些基本问题。

this site,我们可以阅读有关内存间接寻址的内容。

从该站点,我了解到一级无方向匹配引用类型,即引用类型的变量只有一个指针指向内存中分配对象的某个位置。这就是我对间接级别的理解。

提问:这个理解对吗?

如果没有,正确的理解是什么?什么是两级贬低?

如果是,第二层间接寻址是什么?它会指向另一个指针吗?是这样吗?

您有为二级间接寻址提供的示例。在 C# 中,签名如下:

DoWork(ref MyType x)

需要对引用类型的引用。这相当于(如您链接的文章中所述)

的非托管签名
DoWork(MyType** x);

所以一个指向指针的指针。

您的理解是正确的 - 引用类型至少提供了一个间接级别,因为它是指向对象的指针。 ref MyType x 是对引用类型的引用,因此它是指向对象指针的指针,因此是二级间接。