C语言学到单链表这里卡壳了,请好心人给我解释下,谢谢
c语言学习到单链表,下面这段代码是书上抄的,有几个疑问请好心人帮我讲解下,谢谢,#include"stdio.h"
#include"stdlib.h"
struct list
{
int data;
struct list *next;
};
typedef struct list node;//这里为什么要定义typedef类型,不用他定义会有什么后果?
typedef node *link;
void main()
{
link ptr,head;//这里的link是不是类似 int,float之类的一种自定义类型呢,当然我知道他不是关键字
int num,i;
ptr=(link)malloc(sizeof(node));
head=ptr;
printf("please in put 5 numble==>\n");
for(i=0;i<5;i++)
{
scanf("%d",&num);
ptr->data=num;
ptr->next=(link)malloc(sizeof(node));这里为什么又要申请空间,是不是前面申请的空间用来放置data的数据,这个空间用来放置 struct list *next指针的数据呢?
if(i==4)
ptr->next=NULL;
else
ptr=ptr->next;//这里的ptr->next有没有明确指向那个位置,还是随便指向了一个位置而已呢?
}
ptr=head;
while(ptr!=NULL)
{
printf("The value is==>%d\n",ptr->data);
ptr=ptr->next;
}
}