堆栈两种操作:压栈和弹出压栈即向堆栈中添加元素。根据使用的空间的地址顺序不同,将堆栈的生长方向分为顺向和逆向。先使用低地址就是顺向生长,反之则为逆向生长。

左边是51这种顺序生长,右边是80806/stm32那种逆向生长根据SP指定的相对位置,将堆栈分为满堆栈和空堆栈。空堆栈的SP指向堆栈最顶的元素再下一个位置,也即是空的、堆栈中当前第一个可用的空间。而满堆栈的SP指向堆栈顶部那个元素的位置。

左边两个分别是有一个元素和三个元素的空栈,右边是有五个元素的满栈思考:满堆栈压栈的时候SP如何调整,是增大还是减小?
答案:与堆栈的生长方向有关,顺序生长就增大,逆向生长就减小
举报
更多回帖