永发信息网

VB里面的堆栈是什么意思啊?我怎么看不懂

答案:3  悬赏:60  手机版
解决时间 2021-11-19 19:48
  • 提问者网友:捧腹剧
  • 2021-11-19 16:42
VB里面的堆栈是什么意思啊?我怎么看不懂
最佳答案
  • 五星知识达人网友:孤老序
  • 2021-11-19 18:09
这不用你懂,它是电脑在计算复杂的计算时,采用在内存中开辟临时内存空间,用来盛放产生的中间数,由电脑自动自成的。
全部回答
  • 1楼网友:刀戟声无边
  • 2021-11-19 19:22
VB没有堆栈的概念,大多数高级语言都没有,只有汇编才会提到堆栈。
  • 2楼网友:神鬼未生
  • 2021-11-19 18:36
可以将栈想象成一堆从顶向下堆叠的盒子。当每调用一次方法时,我们将应用程序中所要发生的事情记录在栈顶的一个盒子中,而我们每次只能够使用栈顶的那个盒子。当我们栈顶的盒子被使用完之后,或者说方法执行完毕之后,我们将抛开这个盒子然后继续使用栈顶上的新盒子。

堆的工作原理比较相似,但大多数时候堆用作保存信息而非保存执行路径,因此堆能够在任意时间被访问。与栈相比堆没有任何访问限制,堆就像床上的旧衣服,我们并没有花时间去整理,那是因为可以随时找到一件我们需要的衣服,而栈就像储物柜里堆叠的鞋盒,我们只能从最顶层的盒子开始取,直到发现那只合适的。

栈是自行维护的,也就是说内存自动维护栈,当栈顶的盒子不再被使用,它将被抛出。相反的,堆需要考虑垃圾回收,垃圾回收用于保持堆的整洁性,没有人愿意看到周围都是赃衣服,那简直太臭了!

当我们的代码执行的时候,栈和堆中主要放置了四种类型的数据:值类型(Value Type),引用类型(Reference Type),指针(Pointer),指令(Instruction)。

这里有一条黄金规则:

1. 引用类型总是放在堆中。(够简单的吧?)

2. 值类型和指针总是放在它们被声明的地方。(这条稍微复杂点,需要知道栈是如何工作的,然后才能断定是在哪儿被声明的。)

栈是负责保存我们的代码执行(或调用)时的路径。当我们的代码开始调用一个方法时,将放置一段编码指令(在方法中)到栈上,紧接着放置方法的参数,然后代码执行到方法中的被“压栈”至栈顶的变量位置。

详细资料必须参考相关书籍。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯