栈操作函数的传值问题和函数的形参问题,*&。。。

void initstack(sqstack *&s)
{
     s=(sqstack *)molloc(sizeof(sqstack));

     s->top=-1;
}

void destroystack(sqstack *&s)

{

    free(s);

}

bool stackempty(sqstack *s)

{

     return(s->top==-1);

}


//我想问为什么这里有的函数的形参中带&,有的不带

在函数里修改s指针(注意,是修改指针,而不是修改指针指向的变量),为了让修改影响到调用者的实参上,就需要&
在你的代码里,initstack有 s=xxx,存在修改指针,所以用&,别的没有修改,不用