在数据结构中,参数中的*&L是个什么意思?在链表InitList(LinkList *&L)这个参数是什么意思呢?我已经参阅资
在数据结构中,参数中的*&L是个什么意思?
在链表InitList(LinkList *&L)这个参数是什么意思呢?
我已经参阅资料,传值是L,传引用是&L,传指针是*L, 如果需要有原值的变更的话需要用传引用,或者传指针
那么这个*&L到底应该如何去理解?
[解决办法]
- C/C++ code
void fun1(int* p){p++;}void fun2(int*&P){p++;}假如我现在调用:int a[10];int * p = a;fun1(p);此时p还是指向的a的第一个元素fun2(p);此时p指向的是a的第二个元素!看明白了吧?一般的传指针,都是复制一个指针为了不复制指针,就可以传引用!常常:int*p=null;getMalloc(p);//这个函数应该传递的是指针的引用,否则p将不能在getMalloc函数返回的时候指向分配的那部分内存!
[解决办法]
是一个指针的引用,其实指针也是一个变量,如果直接对这个函数传递指针变量,那道理和传值调用是一样的,函数执行完以后这个指针
会得不到任何的操作,所以要传递一个引用。 