堆栈工作原理

上传人:M****1 文档编号:486691719 上传时间:2022-09-14 格式:DOCX 页数:2 大小:7.89KB
返回 下载 相关 举报
堆栈工作原理_第1页
第1页 / 共2页
堆栈工作原理_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《堆栈工作原理》由会员分享,可在线阅读,更多相关《堆栈工作原理(2页珍藏版)》请在金锄头文库上搜索。

1、堆栈工作原理在计算机领域,堆栈是一个不容忽视的概念,堆栈其实是两种数据结 构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈 顶(top)对数据项进行插入和删除。要点:堆,顺序随意。栈,后进 先出(Last-In/First-Out)。针对栈这种数据结构的基本操作有两种:压栈和弹出,在栈帧中包含 两个标志-栈底和栈顶,其中栈顶标识着要push或pop的数据的地 址,而栈底则表示栈帧中最后一个数据的内存地址。在Win32中,寄存器esp存放着栈底指针,栈是向低地址方向生长, 因此esp指向栈顶元素堆栈对比(操作系统):由编译器自动分配释放,存放函数的参数值,局部变量的值等。其 操作方式

2、类似于数据结构中的栈栈使用的是一级缓存,他们通常都是被调用时处于存储空间中,调 用完毕立即释放堆(操作系统):一般由程序员分配释放,若程序员不释放,程序 结束时可能由OS回收,分配方式倒是类似于链表。堆则是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定 (并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些堆(数据结构):堆可以被看成是一棵树,如:堆排序栈(数据结构):一种后进先出的的数据结构C/C+中的堆栈区别一个由C/C+编译的程序占用的内存分为以下几个部分1、栈区(stack)一由编译器自动分配释放,存放函数的参数名, 局部变量的名等。其操作方式类似于数据结构中的栈。2、堆区(heap)一由程序员分配释放,若程序员不释放,程序结 束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式 倒是类似于链表。3、全局区(静态区(static)全局变量和静态变量的存储是放在一 块的,初始化的全局变量和静态变量在一块区域,未初始化的全局 变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统 释放。4、文字常量区一常量字符串就是放在这里的,程序结束后由系统释 放。5、程序代码区一存放函数体的二进制代码。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号