问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C,C++中的堆与栈是什么含义?

发布网友 发布时间:2022-05-02 18:31

我来回答

2个回答

热心网友 时间:2022-06-21 06:07

堆栈是一种执行“后进先出”算法的数据结构。

设想有一个直径不大、一端开口一端封闭的竹筒。有若干个写有编号的小球,小球的直径比竹筒的直径略小。现在把不同编号的小球放到竹筒里面,可以发现一种规律:先放进去的小球只能后拿出来,反之,后放进去的小球能够先拿出来。所以“先进后出”就是这种结构的特点。

堆栈就是这样一种数据结构。它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。开始放入数据的单元叫做“栈底”。数据一个一个地存入,这个过程叫做“压栈”。在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自动加1。读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减 1。这个过程叫做“弹出pop”。如此就实现了后进先出的原则。

堆栈是计算机中最常用的一种数据结构,比如函数的调用在计算机中是用堆栈实现的。
堆栈可以用数组存储,也可以用以后会介绍的链表存储。
下面是一个堆栈的结构体定义,包括一个栈顶指针,一个数据项数组。栈顶指针最开始指向-1,然后存入数据时,栈顶指针加1,取出数据后,栈顶指针减1。

#define MAX_SIZE 100
typedef int DATA_TYPE;
struct stack
{
DATA_TYPE data[MAX_SIZE];
int top;
};

在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。
全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。
常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改(当然,你要通过非正当手段也可以修改,而且方法很多.

热心网友 时间:2022-06-21 06:07

堆是一个广泛的概念,只要是内存数据块,由程序负责管理,就可以叫做数据堆。
相对的,栈有自己的规则,后进先出,有遍历的方式,可以理解成一个单向开口的数据链表。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
保温钉保温钉 《纯爱恋歌Ⅰ》txt全集下载 Win10实时防护无法打开怎样关闭? 网上银行添加下挂卡(猪福卡)可以交易吗? 违章显示已处理未交款 和女友闹矛盾,她说分手很多次了。今天我故意发我和前女友照片在空间并发... 我跟我男朋友分手了,我在朋友圈发了朋友送的花,还说重新开始新的恋_百... ...去送东西。他没要,他发了一个朋友圈,大家看看什么意思? 当一个人看着你发一些话在朋友圈故意气他,结果他又把你拉黑了,什么意思... 写以个作文题目为“从明天起做一个……的人” 栈是什么结构 网络中有这样一个词“TCP栈”,请问这个“栈”是什么意思?我想问栈的意思,不要复制一堆TCP是什么。 不思议迷宫角斗士怎么样 北汽角斗士这款车怎么样?油耗大吗(要具体点)?如果要改装内饰,需要花费多少?能改成自动挡的吗? 对电影《角斗士》的评价与看法,电影商业性与艺术性关系的看法 神里绫华带角斗士套怎么样 古罗马的角斗士是怎样的? 大家对《角斗士》有什么评价? 角斗士怎么样 角斗士这电影怎么样? 北汽角斗士怎么样,油耗 猿辅导建设武汉运营总部,总投资40亿元,在线教育为何得靠烧钱才能发展? 曾经的山西首富为跟车晓结婚花重金,巨额资产已经花完,现在怎样了? 是不是电路图上,带+号的电容就是电解电容? 工行理财产品出过事吗 非固体铝电解电容平均直流电压的二区降额限值是多少 太平洋保险投资的项目有哪些 大容量电容除了电解电容还有什么电容 黄光裕刚出狱就卖40亿资产是怎么回事? 普通电容可以代替电解电容吗? win7 activation1.7激活完成在哪里卸载 win7激活工具是什么东西可以卸载吗 怎样卸载win7旗舰版的验证程序 我19岁能贷款吗。要什么手续? 如何评价古罗马角斗士的行为 终极者 角斗士怎么样? 角斗士一套的法师怎么样 角斗士扫雷车的动力系统是怎样的? 角斗士牌护墙角怎样?信得过吗? 极客时间的Python训练营值得报名吗? 我19岁可以贷款吗? 现在微波炉流行镜面设计,有什么用处,据说能防辐射,是真的吗?双层、单层门对辐射防护有区别吗? 19岁可以贷款吗? 《有礼貌的甜嘴姑娘》 故事内容是什么 讲文明,懂礼貌的童话故事 双层隔热玻璃杯可以放入微波炉加热吗? 丁醚在布草洗涤剂的用出 如何清洗布草圆珠笔油渍 布草上的顽固油渍怎么去除 水洗后布草黄渍如何处理