读书人

栈是什么。该怎么处理

发布时间: 2012-06-23 14:52:43 作者: rapoo

栈是什么。。。
RT,希望大神能讲的浅显易懂,可以用比喻之类的。。。谢谢、

[解决办法]
模型上,相当于一个整理箱,你往里面放东西,总是放在最顶上,同时东西堆相应的增高,于是先放进去的在下面,后放进去的在上面,最后放进去的在最上面(桶顶)
反过来,取东西总是拿最上面的,东西堆也相应的降低

这个叫先进后出

而栈就是一段内存,有一个指针总是指向栈顶,每次往栈里存数据,都是往这个指针存,也就是存在栈顶,同时栈相应的增高(指针指向新的栈顶),和桶一样……
反过来,每次取数据也是从栈顶,同时栈相应的降低…………

以上是栈的模型

另外记住,往栈里存的数据都是临时的,在一个函数执行完后就没了(并不是真的没了,只是被释放了,访问不再安全了)
[解决办法]
栈是一种数据结构,先进后出,使用指针进行操作,Push(数据入栈),Pop(数据出栈),相应的操作会使指针移动。

堆区和栈区:这儿的栈区和上面的栈不是同一种,操作系统中分为:堆区,栈区,静态区,代码区
其中:代码区是存储代码的(注意,一些字符串是放在代码区的);堆区:程序员自己分配的空间,自己释放;栈区:系统为普通变量分配的空间(除全局变量,静态变量);静态区:全局变量,静态变量

读书人网 >C++

热点推荐