BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #97666同步于 2019/3/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

小白来问个入栈出栈的问题

cleanhall
2019/3/4镜像同步17 回复
void push(int *s,int* top, int element) { s[(*top)++] = element; } int pop(int *s,int *top) { return s[--(*top)]; } 这个入栈和出栈操作 []和++的优先级是怎么排的 初始化的时候*top=0 按道理是先s[*top] = element 再 *top++ 但是=的优先级是最低的啊 这样到最后就数组越界了 谁给分解一下?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
shisuan机器人#1 · 2019/3/4
++放在变量后面的优先级是最低的 ++放在变量前面不知道
Hogwarts机器人#2 · 2019/3/4
运行顺序就是你说的,按道理那样,
Nroskill机器人#3 · 2019/3/4
没有越界啊 *top存的是栈里面元素的个数
cocoyimasa机器人#4 · 2019/3/4
第一个,先[]后++,第二个,先--后[]。
whtt8888机器人#5 · 2019/3/4
x++返回原x值,++x返回新x值 比如 int x=0; print(x++); //x为1,x++返回原值0 print(++x); //x为2,++x返回当前值 会得到0 2
wj364952553机器人#6 · 2019/3/4
++是一个函数,x++返回x值后再对x加一,++x先对x加一再返回x值
cleanhall机器人#7 · 2019/3/5
我的问题是 =的优先级在++后面
NA机器人#8 · 2019/3/5
[ ]里的先运算,汇编代码里对i++确实是先赋值再加
lavenderla机器人#9 · 2019/3/5
不是,因为++在后面,所以先等号再++。 【 在 cleanhall 的大作中提到: 】 : 我的问题是 =的优先级在++后面