c语言的传值与传指针的问题

这个是一个精简的程序,主要问题在main函数中#include<stdio.h>#include<stdlib.h>structCountry{charcounnum[5... 这个是一个精简的程序,主要问题在main函数中
#include<stdio.h>
#include<stdlib.h>

struct Country
{
char counnum[5];
char counname[21];
int population;
int family;//depositor存款人
float relief;//救济金
Country *next;
};

typedef struct Country *Lcountry;

//生成数据
int CreateData(Lcountry *head)
{
Country* s,*p;
int i,num;
printf("输入个数:");
scanf("%d",&num);
if(num<1)
{
printf("个数不合法\n");
return 0;
}
//录入数据
for(i=1;i<=num;i++)
{
if((s=(Country*)malloc(sizeof(struct Country)))==NULL)
{
printf("内存申请出错\n");
return 0;
}
printf("输入counnum counname population family relief,中间用空格隔开\n");
if(scanf("%s%s%d%d%f",s->counnum,s->counname,&s->population,&s->family,&s->relief)!=5)
{
printf("录入数据有误\n");

return 0;
}

s->next=NULL;
if(i==1)
{
*head=p=s;
}
else
{
p->next=s;
p=s;
}
}
return 1;
}

//显示数据
void Print(Country* p)
{

printf("counnum \t counname \t population \t family \t relief\n");
while(p!=NULL)
{
printf("%s\t\t%s\t\t%d\t\t%d\t\t%0.1f\n",p->counnum,p->counname,p->population,p->family,p->relief);
p=p->next;
}
}

int main()
{

Country* head=NULL;
//生成数据
CreateData(&head);//这个为什么传的head的值,不过我printf之后显示还是一个地址
//显示数据
Print(head);//这个为什么又传的地址
system("pause");
}

main函数中的两个函数为什么要这么传?
有个问题就是为什么需要双重的指针
展开
 我来答
匿名用户
2012-04-29
展开全部
森林
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式