*S.top++=e如何理解?我是这样理解的,*S.top++=e的等价于:*((s.top)++)= e 这样好像不对吧?先算 *S.top=e;再( S.top)++; ——————————————————————————————————

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 14:13:21

*S.top++=e如何理解?我是这样理解的,*S.top++=e的等价于:*((s.top)++)= e 这样好像不对吧?先算 *S.top=e;再( S.top)++; ——————————————————————————————————
*S.top++=e如何理解?
我是这样理解的,*S.top++=e的等价于:*((s.top)++)= e
这样好像不对吧?
先算 *S.top=e;
再( S.top)++;
——————————————————————————————————————
*S.top++=e ,意图是将e入栈,top是指向栈顶的指针,e入栈后那么应该是top++?为何是S.top++呢,不解.
问题来源——栈的顺序表示:
/* c3-1.h 栈的顺序存储表示 */
#define STACK_INIT_SIZE 10 /* 存储空间初始分配量 */
#define STACKINCREMENT 2 /* 存储空间分配增量 */
typedef struct SqStack
{
SElemType *base; /* 在栈构造之前和销毁之后,base的值为NULL */
SElemType *top; /* 栈顶指针 */
int stacksize; /* 当前已分配的存储空间,以元素为单位 */
}SqStack; /* 顺序栈 */

*S.top++=e如何理解?我是这样理解的,*S.top++=e的等价于:*((s.top)++)= e 这样好像不对吧?先算 *S.top=e;再( S.top)++; ——————————————————————————————————
S为对象,其属性top为指针
先算 *S.top=e;
再 S.top++;