2012-07-18 44 views
1

http://msdn.microsoft.com/en-us/library/d5x73970(v=vs.80).aspx它究竟是如何存儲在存儲器中 - 嵌套是混淆

在上述鏈接「節點」類有「節點」作爲它的數據成員。 它是如何存儲在內存中的?因爲當它爲「節點」創建內存結構時,其中一個成員具有「節點」內存結構。由於某種原因,我無法理解在程序中如何解釋並由編譯器編譯的內部工作。

+0

[你應該只根據你面對的實際問題提出實際的,可回答的問題。](http://stackoverflow.com/faq)你面臨的問題是,你的問題也可以解決嗎? – 2012-07-18 22:09:51

回答

2

我認爲你的麻煩來源於你直覺上認爲數據成員節點(或者說分配給它的內存)包含在原始節點中的事實。

理解的關鍵是Node成員實際上是一個引用 - 它可能爲空。因此用於存儲構成節點的數據的內存可以在任何地方。 Node成員本質上是一個指針。

.NET和現代語言往往會掩蓋這種事情讓程序員不需要考慮一下。如果我是你,我會考慮找到一個高質量的C文本,並仔細閱讀有關指針的章節。

1

Node成員沒有「嵌入」或「嵌套」,因爲你稱之爲。

它只是一個參考到另一個節點。如果你在做C或C++,它在概念上將是一個指向anohter節點的指針。

0
private class Node 
{ 
    private Node next; 
    private T data; 

    ... 
} 

私有字段next商店Node類型的對象的引用。它引用的對象將在內存中的其他位置。