llgd.net
当前位置:首页 >> *S.top++=E和*++S.top=E一样吗? >>

*S.top++=E和*++S.top=E一样吗?

*(s.top)++=e,表示先进行*(s.top)运算再进行++运算(即再+1); ++s.top;*(s.top)=e;,表示先进行+1运算,再进行*()运算。

*((*S).top)++=e;这句的意思是去除S的top指针,将e赋值给top指向的元素,然后top的指针自增

S为对象,其属性top为指针 先算 *S.top=e; 再 S.top++;

优先级 '.' > "--" = '*', 所以是e = *(--(s.top)) s是stack s.top有两种可能 一是指向栈顶元素的指针 二是指向比栈顶元素更高一层的空元素 从这里的实际情况来看,我判断是第二种情况,当s.top==0时,栈为空。 --s.top是递减指针,这时s.top就...

S->top 是变量 含义就是: *(S->top)=e; // 先对指针指向的块送值 S->top=S->top+1; // 再指针增一

S栈的顶部下移 弹出原顶部 再把指针指向的值赋给E

前面是结构名,访问。后面是指针访问

运算符优先级为++(--) 然后是* 最后是= 所以--S.top先运算, 其次是*(--S.top),最后是e=*(--S.top)

从你的代码看应该是C语言或C++吧。 在代码中s应该是一个结构体指针,结构体中包括用于存储压入栈数据数组data[],和表示栈顶的变量top(一般栈为空时 top=-1,压入一个加1)因而s->data[s->top]的意思就是:最后压入的数据,也就是栈顶的数据。例...

网站首页 | 网站地图
All rights reserved Powered by www.llgd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com