您的位置:首页 > 其它

谈一下我学习栈的时候一点点心得

2012-10-21 15:12 274 查看
刚开始学习C语言的时候,对于什么栈、堆之类的根本就没有概念,分不清楚,后来在学习数据结构的时候遇到了一定的困难,我就向同学进行了请教,并且上网查找了一些资料,算是有了一些初读的了解和认识,今天和大家晒一晒 :

我们软件学院的同学,栈是一个不可忽视的概念,我们以后写的C语言程序基本上都要用的上,在我刚开始接触的时候,对于我来说就是一个很模糊的概念,只知道是一种数据结构,用来存放数据,但是要我说出它和堆的区别,当时的我还是说不出来的。

栈,是一种数据项按序列的数据结构。它具有先进后出的性质,就好比我们在箱子里面放东西,东西就是我们想要存放的元素,箱子就是栈,我们先放进去的东西,会被放在下面,后被放进去的东西会放在上面,这样,当我们想要拿东西的时候,就要想从上面开始拿, 这就是先进后出,最先放进去的,要最后才能拿出来;再举个例子,手枪的弹夹大家都知道,我们把子弹压进弹夹,最上面的一颗子弹,是我们最后发那个进去的那一个,但是他是第一个出来的,就是这样。


这是我在网上找到的一个图,要说一下C语言程序内存分配中的栈,先要把内存的分配也解释一下,一般情况下程序存放在Rom或Flash中,运行时需要拷到内存中执行,内存会分别存储不同的信息,就如上图所示。

栈,是系统自动分配的,等你们学到堆以后,就会发现栈和堆的不同,堆是要你自己去开辟的,另外,他们存放的东西也不同。

好了, 只是简单的给你们介绍一下,免得你们以后学到的时候疑惑,效仿一下大东,给你们留一个作业,写出堆和栈分别存储什么样的数据,然后上网查找一下有关对的相关知识,然后发到老地方,命名规则照旧。

加油,我的小干事们。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: