堆和栈的一个疑惑

king__xy 2011-05-11 02:54:03
一直就有个疑问,今天无聊,来问下:
大家都知道,其实堆和栈是两个不同的数据结构,但在学习C的时候很多时候都会说到堆栈,当然这儿的意思只是说栈而不会涉及到堆,那为什么大家很多时候都是用堆栈来表明栈呢???
不知道说清楚没有。。。
...全文
100 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2011-05-11
  • 打赏
  • 举报
回复
中文翻译问题。英文里面stack和heap从来就没有混淆过。
非鱼boy 2011-05-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 king__xy 的回复:]
综合楼上的:那是不是说再内存中,一般把堆和栈分的比较清楚,而在数据结构中,一般就是用堆栈来表示栈,是不是这个意思呢?
[/Quote]
在内存中堆和栈是两个不同的内存区,数据结构中的堆和栈是两个不同的数据结构。内存中的堆的分配方式类似于链表。而数据结构中,堆栈就是栈,翻译的问题,先进后出;堆是一种排序方式,成为堆排序。
呵呵,我说的好像有点乱。
king__xy 2011-05-11
  • 打赏
  • 举报
回复
综合楼上的:那是不是说再内存中,一般把堆和栈分的比较清楚,而在数据结构中,一般就是用堆栈来表示栈,是不是这个意思呢?
张小毛 2011-05-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 proghua 的回复:]

堆栈,其实是两种数据结构
但现在各种书本搞的有点模糊,经常用堆栈来直接说栈
[/Quote]
xiao 哈利
proghua 2011-05-11
  • 打赏
  • 举报
回复
堆栈,其实是两种数据结构
但现在各种书本搞的有点模糊,经常用堆栈来直接说栈
ryfdizuo 2011-05-11
  • 打赏
  • 举报
回复
数据结构上堆和栈 是两种不同数据结构、
内存空间,堆和栈也不同,自动变量定义在栈上;malloc,new创建的变量定义在堆上,并且要手动释放。
非鱼boy 2011-05-11
  • 打赏
  • 举报
回复
一般我们可以理解为内存分为三个部分:堆,栈和静态区。堆的英文是heap;栈的英文是stack,也翻译为堆栈。
堆:有malloc系列函数或new操作符分配的内存。起生命周期由free或delete决定。
栈:保存局部变量。栈上的内存只在函数的范围内存在,当函数运行结束,这些内容也就会自动销毁。
静态区:保存自动全局变量和static变量
king__xy 2011-05-11
  • 打赏
  • 举报
回复
内存。。。
luciferisnotsatan 2011-05-11
  • 打赏
  • 举报
回复
堆栈 等于 栈,翻译这么翻的。

另外,你这个堆和栈到底指数据结构,还是内存上的呀?

69,371

社区成员

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

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