参数以&打头是什么意思解决方案

参数以&打头是什么意思
看数据结构上说,引用参数以&打头,将返回操作结果。这什么意思?
比如:int InitStack(SqStack &S),S前就有&
我自己写这个关于栈的函数时
int main()
{
  SqStack S;
  InitStack(S); 当S前加上&时,编译不能通过;但是没有&时,一切正常。这个又是怎么回事?
  ....
}

------解决方案--------------------

你想你那应该是要这样的:

int InitStack(SqStack* S)
int main()
{
SqStack S;
InitStack(&S); 当S前加上&时,编译不能通过;但是没有&时,一切正常。这个又是怎么回事?
....
}
------解决方案--------------------
探讨

引用:

那是C++里的语法,表示引用参数的意思。在C语言里不存在这样的语法,所以会报错。

那我在写了int InitStack(SqStack &S)这样的函数,但是引用的时候用上&就报错。我把创建的
int InitStack(SqStack &S)里的&去掉以后,程序能编译通过,但是运行时又停止工作需要调试。这怎么回事?