从增长方向上,可分为向上增长和向下增长
向上增长:压栈时,栈指针的值增加,即向高地址方向生长,为递增堆栈
向下增长:压栈时,栈指针的值减小,即向低地址方向生长,为递减堆栈
从栈指针所指的位置,可分为满堆栈和空堆栈
满堆栈:栈顶指针指向最后压入的元素。
空堆栈:栈项指针指向下一个可以存放元素的空间。
综合起来,就有四种方式:
空递增
满递增
空递减
满递减
常见情况下,栈的空间放在内存的最后面,即地址最大的地方,所以是向下增长的,为递减堆栈。
X86上,是满堆栈。