我有一个询问。这个主题是许多人所熟知的,但是我最近才碰到这个话题,也许还有基本的问题。
在this site上,我们可以了解有关内存间接寻址的信息。
从该站点,我了解到一种无方向性与引用类型匹配,即引用类型的变量只有一个指向内存中分配对象的位置的指针。这就是我对间接水平的理解。
问题:这种理解正确吗?
如果不是,正确的理解是什么?那两个独立的水平又是什么?
如果是,第二级间接访问是什么?它是指向另一个指针的指针吗?是吗?
答案 0 :(得分:4)
您提供了用于第二级间接访问的示例。在C#中,签名如下:
DoWork(ref MyType x)
需要对引用类型的引用。等同于(如您所链接的文章中所述)与
的非托管签名相同DoWork(MyType** x);
所以是指向指针的指针。
您的理解是正确的-引用类型提供了至少一个间接级别,因为它是指向对象的指针。 ref MyType x
是对引用类型的引用,因此它是指向对象的指针,因此是间接的第二层。