我读到有两个内存区域,一个是堆栈,另一个是堆。基本数据类型(如 int、double、float 等)存储在堆栈中,而引用类型存储在堆中。我们知道堆栈是LIFO
这意味着最后推送的元素将首先被删除。现在假设以下代码
int first = 10;
double second = 20.0;
float third = 3.0F;
so, first
会先被推送,然后second
进而third
。如此多变third
float 类型将位于堆栈顶部,但如果我使用以下代码(假设在 C# 中)
Console.WriteLine(second);
变量的值如何second
将在变量被访问时third
位于堆栈顶部?
你误解了什么the stack
实际上是指。有一个数据结构Stack
它使用push
and pop
存储数据,但基于堆栈和基于头的内存是一个更加抽象的概念。您可以尝试查看维基文章 http://en.wikipedia.org/wiki/Stack-based_memory_allocation基于堆栈的内存分配,但您还需要了解有关程序集和帧指针的更多信息。整个课程都讲授这个主题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)