当前位置:首页>汕尾百科>全文内容

函数是堆还是栈(入栈函数)

汕尾百科栏目 于时间:2024-05-29 07:00:01进行更新

大家好,今天小编来为大家解答以下的问题,关于函数是堆还是栈,入栈函数这个很多人还不知道,现在让我们一起来看看吧!

本文目录

函数是堆还是栈(入栈函数)

  1. 堆和栈的区别是啥
  2. 请讲述堆和栈的区别
  3. 函数调用用栈还是队列

一、堆和栈的区别是啥

堆与栈的区别有:1、栈由系统自动分配,而堆是人为申请开辟;2、栈获得的空间较小,而堆获得的空间较大;3、栈由系统自动分配,速度较快,而堆一般速度比较慢;4、栈是连续的空间,而堆是不连续的空间。

堆和栈的区别主要有五大点,分别是:

1、申请方式的不同。栈由系统自动分配,而堆是人为申请开辟;

2、申请大小的不同。栈获得的空间较小,而堆获得的空间较大;

3、申请效率的不同。栈由系统自动分配,速度较快,而堆一般速度比较慢;

4、存储内容的不同。栈在函数调用时,函数调用语句的下一条可执行语句的地址第一个进栈,然后函数的各个参数进栈,其中静态变量是不入栈的。而堆一般是在头部用一个字节存放堆的大小,堆中的具体内容是人为安排;

5、底层不同。栈是连续的空间,而堆是不连续的空间。

二、请讲述堆和栈的区别

堆和栈的区别主要有五大点,分别是:

1.申请方式的不同。栈由系统自动分配,而堆是人为申请开辟;

2.申请大小的不同。栈获得的空间较小,而堆获得的空间较大;

3.申请效率的不同。栈由系统自动分配,速度较快,而堆一般速度比较慢;

4.存储内容的不同。栈在函数调用时,函数调用语句的下一条可执行语句的地址第一个进栈,然后函数的各个参数进栈,其中静态变量是不入栈的。而堆一般是在头部用一个字节存放堆的大小,堆中的具体内容是人为安排;

5.底层不同。栈是连续的空间,而堆是不连续的空间。

三、函数调用用栈还是队列

1、堆栈的先入后出式操作顺序,适用于函数的嵌套调用。队列先入先出则不适用。

2、比如:(堆栈的操作是在栈顶完成的)

3、main函数调用A函数,现场参数压栈,栈结构:【[栈顶][调用A现场][栈底]】

4、A函数再调用B函数后:【[栈顶][调用B现场][调用A现场][栈底]】

5、当从B返回时,在栈顶可以拿到刚才入栈的[调用B现场]参数,从A返回时,[调用A现场]参数这回到了栈顶,正好使用。

函数是堆还是栈的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于入栈函数、函数是堆还是栈的信息别忘了在本站进行查找哦。

版权声明:本站原创文章,于2024-05-29 07:00:01,由钱平在汕尾网发表,如有侵权,可联系本站删除。

相关文章