该回答引用ChatGPT4与博主@晓码自在合作编写:
这里使用ps->top--来实现栈顶数据的出栈,原因是:
所以ps->top--是正确的写法,实现先获取栈顶元素,然后栈顶指针减1,完成出栈操作。
如果写成ps->top--,等价于:
c
int top = ps->top;
ps->top = top - 1;
先获取栈顶指针top的值,然后减1赋值给ps->top。
而ps->--top相当于:
c
ps->top -= 1;
int top = ps->top; // 此时的top已经减1
这时获取的top值已经是减1后的值,不正确。
所以ps->top--是正确的出栈写法,符合先获取栈顶元素,然后栈顶指针减1的逻辑。
啥叫先top再自减,你能翻译一下自己在说什么吗
top是个变量,又不是方法,怎么叫先top呢
初始化时,top等于0,是栈顶嗯下一个数据,就是说当他出栈的时候,是栈顶自减,但是第一次不是先赋值嘛,
ps->top 是一个整体,表示结构体的 top 成员变量,ps->top-- ====> top--