栈的初始状态啥意思 栈的初始状态为空是什么意思


栈的初始状态啥意思 栈的初始状态为空是什么意思

文章插图
栈的初始状态简单的说其实就是:在栈中还没有将元素进行进栈或者出栈的运动时,栈本身最开始的状态(也就是说:在没有进行元素的进出栈时,栈中的栈顶指针和栈底指针所指向的位置这样一个状态) 。
栈它是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取 。这就如同要取出放在箱子里面底下的东西(放入的比较早的物体),首先要移开压在它上面的物体(放入的比较晚的物体) 。内存中的栈区处于相对较高的地址以地址的增长方向为上的话 , 栈地址是向下增长的 。栈中分配局部变量空间,堆区是向上增长的用于分配程序员申请的内存空间 。另外还有静态区是分配静态变量,全局变量空间的;只读区是分配常量和程序代码空间的;以及其他一些分区 。
【栈的初始状态啥意思 栈的初始状态为空是什么意思】由于栈上的空间是自动分配自动回收的,所以栈上的数据的生存周期只是在函数的运行过程中,运行后就释放掉,不可以再访问 。栈在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域 。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在 WINDOWS下,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数) , 如果申请的空间超过栈的剩余空间时 , 将提示overflow 。因此,能从栈获得的空间较小 。

    推荐阅读