这段代码的作用是什么???
struct address_book *create()
{
struct address_book *head,*p1,*p2;
printf("请输入联系人信息:\n");
head=p1=p2=(struct address_book *)malloc(sizeof(struct address_book));
printf("请输入编号:");
scanf("%d",&head->number);
printf("请输入电话号码:");
scanf("%s",head->tel);
printf("请输入邮箱:");
scanf("%s",head->email);
printf("请输入QQ:");
scanf("%s",head->tqq);
printf("请输入微信");
scanf("%s",head->weixin);
p2=(struct address_book *)malloc(sizeof(struct address_book));
printf("请输入编号:");
scanf("%d",&p2->number);
printf("请输入电话号码:");
scanf("%s",p2->tel);
printf("请输入邮箱:");
scanf("%s",p2->email);
printf("请输入QQ:");
scanf("%s",p2->tqq);
printf("请输入微信");
scanf("%s",p2->weixin);
p1->next=p2;
for(;p2->number!=100;)
{
p1=p2;
p2=(struct address_book *)malloc(sizeof(struct address_book));
printf("请输入编号:");
scanf("%d",&p2->number);
printf("请输入电话号码:");
scanf("%s",&p2->tel);
printf("请输入邮箱:");
scanf("%s",&p2->email);
printf("请输入QQ:");
scanf("%s",&p2->tqq);
printf("请输入微信");
scanf("%s",&p2->weixin);
p1->next=p2;
}
p1->next=NULL;
return head;
}