函数形参Sqlist &L和Sqlist L的区别?

tompolaris 2015-08-10 12:06:27
严蔚敏版的数据结构中如下代码:
结构体SqList的定义如下:
struct SqList
{
ElemType *elem; //存储空间基址
int length; //长度
int listsize //当前分配存储容量
};
有两个函数如下:
1.void InitList(SqList &L) //构建一个空的顺序线性表
{
L.elem=(ElemType*)malloc(LIST_INIT_SIZE sizeof(ElemType));
if(!L.elem) //存储分配失败
exit(OVERFLOW);
L.length=0;
L.listsize=LIST_INIT_SIZE; //初始存储容量
}

2.Status GetElem(SqList L,int i,ElemType &e) //用e返回第i个数据元素值
{
if(i<1||i>L.length) //i不在表L的范围之内
return ERROR;
e=*(L.elem+i-1); //将表L的第i个元素给e
return OK;
}
两个函数的形参SqList &L和SqList L相差&有什么区别呢?两个函数中的L好像都是结构体,SqList &L中的L并不是指向SqList的指针,因为L.length这个形式不是L->length这个形式?
...全文
3907 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
topfisherman 2015-11-07
  • 打赏
  • 举报
回复
楼上正解!!!!!
瑞卡哥哥 2015-08-24
  • 打赏
  • 举报
回复
你可以 把& 看成变量的别名, 其本质还是指针。只是在C++ 中叫引用而已
  • 打赏
  • 举报
回复 3
我也是最近弄懂的。 &代表引用,使用&后所传参数会改变,仔细观察你会发现,凡是对链表有改动的,如删除函数,增加函数,形参前面都会有&符号,那是因为调用了这个函数后,所传链表(结构体)会改变。 你可以直接百度&符号的意义。

32,945

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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