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

时间:2018-09-09 15:41:52

标签: c# .net winapi pinvoke

我有一个询问。这个主题是许多人所熟知的,但是我最近才碰到这个话题,也许还有基本的问题。

this site上,我们可以了解有关内存间接寻址的信息。

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

问题:这种理解正确吗?

如果不是,正确的理解是什么?那两个独立的水平又是什么?

如果是,第二级间接访问是什么?它是指向另一个指针的指针吗?是吗?

1 个答案:

答案 0 :(得分:4)

您提供了用于第二级间接访问的示例。在C#中,签名如下:

DoWork(ref MyType x)

需要对引用类型的引用。等同于(如您所链接的文章中所述)与

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

所以是指向指针的指针。

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