【问题标题】:Pointer to another pointer (levels of indirections)?指向另一个指针(间接级别)的指针?
【发布时间】:2019-02-14 04:44:47
【问题描述】:

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

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

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

问题:这种理解正确吗?

如果没有,正确的理解是什么?什么是两级的不择手段?

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

【问题讨论】:

标签: c# .net winapi pinvoke


【解决方案1】:

您已经为第二级间接提供了示例。在 C# 中这样的签名:

DoWork(ref MyType x)

需要对引用类型的引用。与

的非托管签名等效(如您链接的文章中所述)
DoWork(MyType** x);

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    相关资源
    最近更新 更多