+ -
当前位置:首页 → 问答吧 → 这个指针搞不懂

这个指针搞不懂

时间:2011-11-28

来源:互联网

void StackInitiate(SeqStack *S)
{
  S->top = 0;
}
初始化为什么要用指针?
int StackNotEmpty(SeqStack S)
{
  if(S.top <= 0)return 0;
  else return 1;
}
判断是否非空不用指针形式啊?
有什么区别?

作者: zhongchangqing   发布时间: 2011-11-28

没什么 区别
功能相同

如果硬要搞出区别来 只能说在传递参数的时候 前者只需开辟4byte参数栈空间, 后者需要开辟sizeof(SeqStack)byte参数栈空间

作者: leo_wanta   发布时间: 2011-11-28

初始化为什么要用指针?
你要初始化传进来的结构,当然要指针,要不用引用.

判断是否非空不用指针形式啊?
这里用指针也可以,但为了防止StackNotEmpty修改,所以传个拷贝更合理

作者: nickowen   发布时间: 2011-11-28

从你现在这个例子来说,我还是建议使用指针,否则当SeqStack S很大时,效率比较低,为了防止StackNotEmpty修改,可加个const修饰

作者: yang_jnu   发布时间: 2011-11-28