变量如何存储在堆栈中?

Zoh*_*lam 1 c# heap stack

我已经读过有两个内存区域,一个堆栈和另一个堆栈.基本数据类型(如int,double,float等)存储在堆栈中,而引用类型存储在堆上.正如我们所知,堆栈是LIFO指首先删除最后推送的元素.现在假设下面的代码

int first = 10;
double second = 20.0;
float third = 3.0F;
Run Code Online (Sandbox Code Playgroud)

因此,first将首先推,然后secondthird.所以thirdfloat类型的变量将位于堆栈顶部,但如果我使用以下代码(假设在C#中)

Console.WriteLine(second);
Run Code Online (Sandbox Code Playgroud)

second当变量third位于堆栈顶部时,如何访问变量的值?

Jam*_* IV 5

你误解了the stack实际指的是什么.有一种Stack使用pushpop存储数据的数据结构,但基于堆栈和基于头的内存是一个更抽象的概念.您可以尝试查看基于堆栈的内存分配的Wiki文章,但您还需要了解有关汇编和帧指针的更多信息.有关该主题的全部课程.