在一个C程序中定义了三个结构体,它们是嵌套的,具体如下所示:
typedef struct position{
int x;int y;
}Position;
typedef struct{
int order;
Position seat;
Direction di;
}SElemType;
typedef struct{
SElemType *elem;
int top;
}Stack;
其中有一个出栈函数是这样的:
int Pop(Stack *S,SElemType *e){
if(S->top<=0) return ERROR;
*e=S->elem[--S->top];return OK;
}
我不明白的就是指针e的赋值方式,我认为S->elem[--S->top]是一个地址,所以直接在给e赋值时不该加*号,既e=S->elem[--S->top];但编译时这样改是错的,我不知为什么,谭浩强的C语言书上关于这点讲的不是很清楚,望哪位高手指点一二