(c)数据结构基础问题!!!!

 status GetElem_L(LinkList L,int i,ElemType &e)
{
    p=L->next;      /*第一个*/
    j=i;
    while(p&&j<i)
    {
        p=p->next;
        ++j;
    }
    if(!p||j>i)
        return ERROR;
}//GetElem_L






Status ListInsert_L(LinkList &L,int i,ElemType e)
{
    p=L;    /*第二个*/
    j=0;
    while(p&&j<i-1)
    {
        p=p->next;
        ++j;
    }
    if(!p||j>i-1)
        return ERROR;
    s=(LinkList)malloc(sizeof(LNode));
    s->data=e;
    s->next=p->next;
    p->next=s;
    return OK;
}//ListInsert_L

第一个 p=L->next;与第二个p=L;有什么区别呢??

p=L->next将L的下一个元素的地址赋值给p,即p指向L的第二个元素的地址;p=L将LinkList的首地址赋值给p,即p指向L的第一个元素的地址。

你这代码还想问题不小啊,指针、引用都混了,变量p也未声明,怎么能通过编译呢,连类型都不能确定,怎么去说它的区别呢?