1

http://msdn.microsoft.com/en-us/library/d5x73970(v=vs.80).aspx

在上面的链接中,“Node”类将“Node”作为其数据成员。它究竟是如何存储在内存中的?因为当它为“节点”创建内存结构时,其中一个成员具有“节点”内存结构。出于某种原因,我无法理解它在程序中如何解释并由编译器编译的内部工作原理?

4

3 回答 3

2

我认为您的问题源于您直观地认为数据成员节点(或者更确切地说为其分配的内存)包含在原始节点中。

理解的关键是 Node 成员实际上是一个引用——它可能是空的。因此,用于存储构成节点的数据的内存可以在任何地方。Node 成员本质上是一个指针。

.NET 和现代语言倾向于掩盖这种事情,这样程序员就不需要考虑它了。如果我是你,我会考虑寻找高质量的 C 文本并仔细阅读关于指针的章节。

于 2012-07-18T22:11:50.550 回答
1

那里的Node成员不是您所说的“嵌入”或“嵌套”。

它只是对另一个节点的引用。如果您正在使用 C 或 C++,它在概念上将是指向另一个节点的指针。

于 2012-07-18T22:12:35.340 回答
0
private class Node
{
    private Node next;
    private T data;

    ...
}

私有字段next存储对类型对象的引用Node。它引用的对象将在内存中的其他位置。

于 2012-07-18T22:13:09.207 回答