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

问题描述 投票:2回答:1

我有一个询问。许多人都知道这个话题,但我最近才发现它,我可能有一些基本的问题。

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

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

问题:这种理解是否正确?

如果不是,那么正确的理解是什么?什么是两个层次的间接?

如果是的话,第二级间接是什么?它会指向另一个指针吗?是这样吗?

c# .net winapi pinvoke
1个回答
4
投票

您已为第二级间接提供了示例。在C#中签名如下:

DoWork(ref MyType x)

需要引用引用类型。这与您的非托管签名相同(如您链接的文章中所述)

DoWork(MyType** x);

所以指向指针的指针。

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

© www.soinside.com 2019 - 2024. All rights reserved.