第1个回答 2009-10-28
*L=(Linklist)malloc(sizeof(Lnode));
因为malloc()是返回一块空间的指针,所以以此推断:Linklist应该是一个指针类型。因此:
Linklist *L,就定义了一个二级指针L(指向指针的指针)。*L=(Linklist)malloc(sizeof(Lnode))是把分配的空间地址赋给L所指向的指针。
你再仔细看看,明白了吗?
第2个回答 2009-10-28
*L取得L的地址, &L取得L中的值
如果不使用*L传递的话,在函数返回时会造成内存泄漏,因为*L=(Linklist)malloc(sizeof(Lnode));分配空间后在函数外再无法释放
C语言不具备垃圾自动回收,在堆上分配的空间C语言不会自己把它回收,也就是说如果函数原型是int Initlist(Linklist L)的话,该函数执行组束后就会造成内存泄漏了
第3个回答 2009-10-28
因为不使用指针的话,在函数返回时,分配的空间会被收回
第4个回答 2009-11-12
你给它赋值,就是修改了那块内存的值。而&L就是取变量L的地址。打比方:L自己的地址是0x0000,而它存放的内容是0x111本回答被提问者采纳