c语言二级方面的问题,希望大神们解答一下

#include
#include
#define N 8
typedef struct list
{ int data;
struct list next;
} SLIST;
SLIST *creatlist(int *a);
void outlist(SLIST *);
void fun( SLIST *h, int *n)
{ SLIST *p;
/
*********found**********/
1=0;
p=h->next;
while(p)
{ (*n)++;
/**********found**********/
p=p->2;
}
}
main()
{ SLIST head;
int a[N]={12,87,45,32,91,16,20,48}, num;
head=creatlist(a); outlist(head);
/
*********found**********/
fun(head, &num);
printf("\nnumber=%d\n",num);
}
SLIST *creatlist(int a[])
{ SLIST *h,*p,*q; int i;
h=p=(SLIST *)malloc(sizeof(SLIST));
for(i=0; i { q=(SLIST *)malloc(sizeof(SLIST));
q->data=a[i]; p->next=q; p=q;
}
p->next=0;
return h;
}
void outlist(SLIST *h)
{ SLIST *p;
p=h->next;
if (p==NULL) printf("The list is NULL!\n");
else
{ printf("\nHead ");
do
{ printf("->%d",p->data); p=p->next; }
while(p!=NULL);
printf("->End\n");
}
}

http://blog.csdn.net/xubin341719/article/details/7091583/

1.*n = 0
2.p = p->next

 #include    <stdio.h>
#include    <stdlib.h>
#define    N    8
typedef  struct list
{
    int  data;
    struct list  *next;
} SLIST;
SLIST *creatlist(int  *a);
void outlist(SLIST  *);
void fun(SLIST  *h, int  *n)
{
    SLIST  *p;
    /**********found**********/
    *n = 0;
    p = h->next;
    while (p)
    {
        (*n)++;
        /**********found**********/
        p = p->next;
    }
}
void main()
{
    SLIST  *head;
    int  a[N] = { 12, 87, 45, 32, 91, 16, 20, 48 }, num;
    head = creatlist(a);    outlist(head);
    /**********found**********/
    fun(head, &num);
    printf("\nnumber=%d\n", num);
}
SLIST *creatlist(int  a[])
{
    SLIST  *h, *p, *q;        int  i;
    h = p = (SLIST *)malloc(sizeof(SLIST));
    for (i = 0; i<N; i++)
    {
        q = (SLIST *)malloc(sizeof(SLIST));
        q->data = a[i];  p->next = q;  p = q;
    }
    p->next = 0;
    return  h;
}
void outlist(SLIST  *h)
{
    SLIST  *p;
    p = h->next;
    if (p == NULL)  printf("The list is NULL!\n");
    else
    {
        printf("\nHead ");
        do
        {
            printf("->%d", p->data);  p = p->next;
        } while (p != NULL);
        printf("->End\n");
    }
}