C语言指针在链表里面的一些疑惑
源代码:
struct STU{
char name[20];
char stuno[10];
int age;
int score;
}stu[50];
typedef struct STU Elemtype;
struct LNODE
{
Elemtype data;
struct LNOE *next;
};
sypedef struct LNODE LNode
(1) typedef struct LNODE *LinkList /***这句一直看不怎么明白,这句是在初始化一个指针吗?不像,用*LinkList 替代LNODE吗? 我有理解不过来,为什么要这样子代替啊?***/
.
.
.
.
.
/******单链表的初始化操作****/
(2) int init(LinkList *L) /**这个函数的参数我又不太理解了,这个参数到底是指针来作为参数,还是什么,如果是指针的话,LinkList不是一种数据类型啊***/
*L=(LNode *)malloc(sizeof(LNode)); /**用malloc分配函数分配节点**/
if(!L) /**若分配失败,返回**/
exit();
memset(&((*L)->data), 0 ,sizeof(struct STU));/**初始化链表节点的数据域和指针域**/
(*L)->next=NULL;
return 1
}
.
.
.
int GetElem(LinkList L, int i , ElemType *e)
{
LinkList p; int i;
p=L->next;
j=l;
while(p&&j<i)
{
p=p->next;
++j;
}
if(!p||j>1) return 0;
*e=p->data;
return 1;
}
还请各位高手帮忙详细的讲解下(1)(2)的问题。总的来说就是一个问题,LinkList是什么东西。到底是个指针还是别的玩意儿。呵呵 |