代码求解,为什么j要从等于1开始



```c

//根据指定数据获取该数据位置序号(第几个)
int LocateElem_L(LinkList L, Elemtype e){
    p=L->next;
    j=1;
    while(p && p->data!=e){
        p=p->next;
        j++;
    }
    //返回 L 中值为 e 的数据元素的位置序号,查找失败返回0
    if(p){//如果找到了,也就是p不为NULL,就返回 L 中值为 e 的数据元素的位置序号
        return j;
    }else{//如果没找到,也就是p为NULL,就返回0
        return 0;
    }
}

```

这个返回的是你需要的序号嘛,我们正常的读书,还是从1开始数的叭,不像数组是从0开始的所以,j是从1开始,而不是0

j 从0 或 从1 开始,保证结果准确的前提下,理论上定啥都可以啊,写的太复杂,就怕时间长自己也搞懵了。

这个函数是查找e为第几个元素,l->next是第一个,以此类推,而不是要e元素的下标