入栈的不是要放在栈顶么,你又不知道栈顶地址是多少,但是top指针正好是指向栈顶的。p->next=S->top; 就是把刚才入栈的数据放在栈顶放完了,新数据成了栈顶了所以S->top=p;就是把新数据变成栈顶。