栈区内存,由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。
访问顺序遵循先进后出原则。
栈: 在函数调用时,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。
注意静态变量是不入栈的。
当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向函数的返回地址,也就是主函数中的下一条指令的地址,程序由该点继续运行。
栈:由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。
其操作方式类似于数据结构中的栈。
栈,限制仅允许在表的一端进行插入和删除运算,这一端被称为栈顶,相对地,把另一端称为栈底。
向一个栈插入新元素,是把把新元素放到栈顶元素的上面,使之成为新的栈顶元素,从一个栈删除元素,是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素,即所谓的“后进先出”。
例如进去的顺序是123,那么出来的顺序是321,就是后进先出。
队列的数据元素又称为队列元素。
在队列中插入一个队列元素称为入队,从队列中删除一个队列元素成为出队。
因为队列只允许在一段插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,即所谓的“先进先出”。
例如排队,按次序来,就是先进先出。
它们本身是不同的分类,通常说的链表指的是用链式存储方式存储的“线性表”,因为数据的存储分两大类 : 顺序存储和链式存储。
而按逻辑分又有:线性表,栈,队列,树,图等,栈有顺序存储也有链式的,分别为顺序栈和链栈,而线性表也有两种存储方式,分别叫顺序表和链表。