数据结构关于销毁线性表的问题
刚刚看了一个帖子介绍 *&L 和 *L有什么区别,他是这么写的
L是个指针,在线性表初始化这个操作中,要对L进行修改赋值,
形参如果是 SqList*L L在调用前调用后都不会改变,因为是把L拷贝一份
给了函数,是传“值”, 在函数内对L进行的任何修改,都不会影响到L的“本体”
,所以为了达到目的,需要用到 &。
形参是 SqList * &L ,这是引用调用,他传递给函数的,就不是拷贝一份L给函数了,而是将L的地址传给了函数,在函数内对L的任何操作,都是对真正的唯一的L在操作。
其他操作,比如查询,搜索,等等,因为不牵扯到对L的修改,所以可以直接用SqList*L 。
我就看了线性表的各种基本运算的算法,发现我数据结构教材书上写的是 *&L
程序代码:
void DestroyList(SqList *&L)//销毁线性表 { free(L); }
而数据结构上机指导上写的是*L
程序代码:
void DestroyList(SqList *L)//销毁线性表 { free(L); }
有没有人帮忙解释一下,我还是不太懂这两个有什么区别?还有这两种写法到底哪一个是对的