不管技术多牛都需要时刻理解的C语言基础知识-堆栈

在C语言中,堆栈是一个很重要的概念,堆和栈是两种不同的数据结构,合称为堆栈。堆是动态内存分配,栈是自动内存管理。以下是两者的区别和使用方法。

1.堆和栈的通俗理解

栈:后进先出的数据结构,比如我们一层一层的叠放箱子,都会遵循一个时间顺序来叠放,先放的在下面,后放的在上面,我们如果要取出其中一个箱子,前提就是先把最近压在这个箱子上面的箱子先搬走,才能拿走到这个箱子。遵循一个后进先出的原则。

堆:堆是一种经过排序的树形数据结构,每个结点都有一个值。堆的存取是随意,这就如同我们在图书馆的书架上取书,虽然书的摆放是有顺序的,但是我们想取任意一本时不必像栈一样,先取出前面所有的书,书架这种机制不同于箱子,我们可以直接取出我们想要的书。

2.堆和栈技术上的理解

  1. 管理方式不同:栈是由编译器自动管理,包括分配和释放;堆是手动管理的,使用malloc, realloc, calloc, free进行分配和释放。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驽马匠人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值