C语言,如何按值查找,然后返回这个值在链表中的位置?

typedef struct LNode
{
    int data;
    struct LNode* next;
}LNode,*LinkList;

LinkList LocalElem(LinkList a,int e)
{
    LNode* p=a->next;
    int i=1;
    while(p!=NULL && p->data!=e)
    {

        if(p->data==e)
        {
            return i;
        }
        i++;
        p=p->next;
    }

    return p;
}

int main()
{
    LNode a;
    LinkList p;

      printf("\n");
    p=LocalElem(p,1);
    if(p!=NULL)
    {
        printf("%d\n",i);
    }

        return 0;

输出后怎么总是出来一个8,请问要怎么改???(代码里面省略了创建链表的部分)

没看懂弄个链表,怎么问的是输出指针值,单纯输出指针的值就是解引用 *p 就是了

LinkList l = LocalElem(你的链表, 要找的元素);
if (l != NULL) printf("%d", l->data);