函数形参Sqlist &L和Sqlist L的区别?
严蔚敏版的数据结构中如下代码:
结构体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这个形式?