gpt4 book ai didi

c# - 变量如何存储在堆栈中?

转载 作者:太空宇宙 更新时间:2023-11-03 18:28:40 24 4
gpt4 key购买 nike

我读到有两个内存区域,一个是堆栈,另一个是堆。 int、double、float 等基本数据类型存储在堆栈中,而引用类型存储在堆中。正如我们所知,堆栈是 LIFO,这意味着最后一个被压入的元素将首先被移除。现在假设以下代码

int first = 10;
double second = 20.0;
float third = 3.0F;

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

Console.WriteLine(second);

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

最佳答案

您误解了堆栈 实际指的是什么。有一种数据结构Stack,它使用pushpop 来存储数据,但是stack based 和head based memory 是一个更抽象的概念。您可以尝试查看 Wiki article基于堆栈的内存分配,但您还需要了解更多有关程序集和帧指针的信息。整个类(class)都教授这个主题。

关于c# - 变量如何存储在堆栈中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27884887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com