while(*p)表示什么意思？ ,简单的描述是while(*p)表示什么意思？,答案是p明显是个指针，while(p)就是说指针如果有指向，就执行while下的语句，如果是0，也就是NULL，指针没有指向任何地址，也就是空指针。*p=head->next 这个可能是是树之类的数据结构，你没描述清楚，我也猜不出是什么。
追问：
ListNode *LocateNode(LinkList head, char *key)
{
    ListNode *p=head->next; //从开始结点比较
    while(strcmp(p->data,key)!=0 && p)  //直到p为NULL或p->    data为key止
        p=p->next;        //扫描下一个结点
    return p;    //若p=NULL则查找失败，否则p指向找到的值为key的结点
}