int Pop(Stack *S, DataType *e) { if(S->top==-1) return 0; else *e=S->data[S->top--]; return 1; } 传入的DataType*e是一个指针,然后如果你要在地址上修改e的值你就得用解引用的*e来赋值。 所以在上面else的后面不能用e=???你要解引用用*e=???才可以达到真正修改原来的值的想法。 改bug改了半天。。