参数以&打头是什么意思

tom555cat 2012-04-18 05:52:59
看数据结构上说,引用参数以&打头,将返回操作结果。这什么意思?
比如:int InitStack(SqStack &S),S前就有&
我自己写这个关于栈的函数时
int main()
{
SqStack S;
InitStack(S); 当S前加上&时,编译不能通过;但是没有&时,一切正常。这个又是怎么回事?
....
}
...全文
209 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
学武fiy 2012-04-18
  • 打赏
  • 举报
回复
引用,我们刚学的c++
muyi66 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 1 楼 的回复:

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

那我在写了int InitStack(SqStack &S)这样的函数,但是引用的时候用上&就报错。我把创建的
int InitStack(SqStack &S)里的&去掉以后,程序能编译通过,但是运行时又停止工作需要调试。这怎么回事?
[/Quote]C语言里没有引用参数的概念,想要改变实参的值你只能像6楼所说的那样传递给它指针。
int InitStack(SqStack &S)要写成int InitStack(SqStack *S),调用它的地方要写成InitStack(&S);

然后该函数里访问S的地方要写成:*S

hen_hao_ji 2012-04-18
  • 打赏
  • 举报
回复

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

int InitStack(SqStack* S)
int main()
{
SqStack S;
InitStack(&S); 当S前加上&时,编译不能通过;但是没有&时,一切正常。这个又是怎么回事?
....
}
tom555cat 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

那是C++里的语法,表示引用参数的意思。在C语言里不存在这样的语法,所以会报错。
[/Quote]
那我在写了int InitStack(SqStack &S)这样的函数,但是引用的时候用上&就报错。我把创建的
int InitStack(SqStack &S)里的&去掉以后,程序能编译通过,但是运行时又停止工作需要调试。这怎么回事?
hen_hao_ji 2012-04-18
  • 打赏
  • 举报
回复
fzc_crystal 2012-04-18
  • 打赏
  • 举报
回复
回去慢慢看书吧

这里&的意思是引用,即传参时形参是实参的引用(即别名),则传参过程中就没有了形参对实参滴拷贝...
nice_cxf 2012-04-18
  • 打赏
  • 举报
回复
引用,不过C大概不支持把,C++可以
muyi66 2012-04-18
  • 打赏
  • 举报
回复
那是C++里的语法,表示引用参数的意思。在C语言里不存在这样的语法,所以会报错。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧