什么是栈?
刷盘子时,最后放上去的盘子会最先被拿走;编辑文档时,最后一步操作最先被撤销。这种“后进先出”(Last In First Out,简称 LIFO)的规则,就是栈的核心思想。
栈是一种只允许在一端进行插入和删除操作的线性表。这一端叫栈顶(top),另一端叫栈底(bottom)。你可以把栈想象成一个只有顶部开口的筒子,东西只能从顶部放进去,也只能从顶部拿出来。
学习目标
读完本文后,你将能够:
2026/7/9大约 6 分钟
刷盘子时,最后放上去的盘子会最先被拿走;编辑文档时,最后一步操作最先被撤销。这种“后进先出”(Last In First Out,简称 LIFO)的规则,就是栈的核心思想。
栈是一种只允许在一端进行插入和删除操作的线性表。这一端叫栈顶(top),另一端叫栈底(bottom)。你可以把栈想象成一个只有顶部开口的筒子,东西只能从顶部放进去,也只能从顶部拿出来。
读完本文后,你将能够:
之前,我们把变量比作装数据的盒子。这一篇要把这个比喻补完整:盒子不是凭空出现的,它需要存储空间,也只能在一段有限的时间里被合法使用。
| 概念 | 回答的问题 |
|---|---|
| 作用域(scope) | 在源代码的哪些位置能写出这个名字? |
| 存储期(storage duration) | 保存这个对象的存储从何时存在到何时? |
| 生命周期(lifetime) | 这个对象从何时可以被当作该类型使用,到何时结束? |