struct link *AppendNode(struct link *head) 这里表示函数返回值为struct link *指针
struct link *p=NULL;定义一个指针变量p并赋值初值为NULL
p=(struct link *)malloc(sizeof(struct link)); 为p申请一个结点空间
struct link *p=NULL; 声明一个指向结构体link类型的指针
p=(struct link *)malloc(sizeof(struct link)); 给指针赋值。后面的语句动态申请了内存大小为sizeof(struct link)的一块内存。此时p指针指向了这块内存
这是一个函数的定义,这个函数的返回类型是struct link*
link应该是链表节点的结构体类型吧