谁能给我讲讲 什么是 堆 什么是栈 什么是堆栈

wowk 2011-06-06 01:49:55
我这个一直没搞太懂 对这些概念不清晰
...全文
210 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenhu_doc 2011-06-07
  • 打赏
  • 举报
回复
wiki
wowk 2011-06-07
  • 打赏
  • 举报
回复
各位大侠 我还没学过数据结构 堆 和 栈 的概念老师只是上课提了一下 不过没搞懂
Sun_Phoenix 2011-06-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 luozenghui529480823 的回复:]
我们常说的堆栈就是栈,栈是一种先进后出的数据结构。堆也是一种数据结构,但这中数据结构限制不怎么强。像动态分配内存一般都是在堆中分配的。
[/Quote]
栈是调用函数时自动分配的,函数调用结束后,自动释放。堆是自己申请的,自己主动释放
firefoxbug 2011-06-06
  • 打赏
  • 举报
回复
建议去结构数据,楼上的博客也行
生生 2011-06-06
  • 打赏
  • 举报
回复
之前我看到堆栈也是很迷惑,现在知道了,但还是有点说不清楚,只能提示一下,一定有用:

其实,当你看到堆栈这个概念的时候,一定要分清楚他是说的那个地方的堆栈。就堆栈本身而言就是一种数据的存储结构,先进后出呀等等的方法,这个可以在数据结构中了解到,比如你可以把一个数组做成一个栈的存取方式。

还有一个地方就是C程序在运行的时候,会把全局变量存储于静态存储区,把局部变量存储于栈上,把动态开辟的空间(用malloc)存储在堆上,这里的堆栈是程序在运行的时候具体实现方法,是由编译器编译后,由C程序的运行环境决定的。(一定要分清楚程序运行时的内存分配,这个很有用)

总结的不是很好,但是你可以顺着这个思路往下深挖,一定会对C语言有新的认识。
  • 打赏
  • 举报
回复
我们常说的堆栈就是栈,栈是一种先进后出的数据结构。堆也是一种数据结构,但这中数据结构限制不怎么强。像动态分配内存一般都是在堆中分配的。
hui211314dd 2011-06-06
  • 打赏
  • 举报
回复
简单的说。。。。。栈是一种存储结构。。。堆是排序。。。。也是存储结构。。。。。。具体的看课本
hackbuteer1 2011-06-06
  • 打赏
  • 举报
回复
函数参数、局部变量都是存放在栈上面的。
有程序员动态申请的变量是存放在堆区上面的,需要程序员自己来释放的
念茜 2011-06-06
  • 打赏
  • 举报
回复
1、栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap) : 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
sduxiaoxiang 2011-06-06
  • 打赏
  • 举报
回复
看看基础知识吧
SuperFC 2011-06-06
  • 打赏
  • 举报
回复
new一个对象时就得用堆,局部变量之类的用栈!
akipo 2011-06-06
  • 打赏
  • 举报
回复
自己找本数据结构看看吧
新加坡下雨了 2011-06-06
  • 打赏
  • 举报
回复
简单地说,就是数据的存储

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧