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);
}
//我想问为什么这里有的函数的形参中带&,有的不带
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,存在修改指针,所以用&,别的没有修改,不用