指针问题.
1.
STU* FindInChain(STU *head,char *name)
{
STU *p1=head;
while(p1!=NULL) //链表不空
{
if(strcmp(p1->name,name)==0) //打到指定的记录
return p1; //返回此记录(及后续记录)
else p1=p1->next; //在下一条记录中寻找
}
printf("Can't Find the Node!\n");
return NULL; //找不到,则返回空
}
2.
struct student *search(struct student *h,char *x) /*查找链表的函数,其中h指针是链表的表头指针,x指针是要查找的人的姓名*/
{
struct student *p; /*当前指针,指向要与所查找的姓名比较的结点*/
char *y; /*保存结点数据域内姓名的指针*/
p=h->link;
while(p!=NULL)
{
y=p->name;
if(strcmp(y,x)==0) /*把数据域里的姓名与所要查找的姓名比较,若相同则返回0,即条件成立*/
return(p); /*返回与所要查找结点的地址*/
else p=p->link;
}
if(p==NULL)
{
printf("fail to find the data!");
mainmenu();
}
}
问题:strcmp(y,x)==0这个怎么是一个字符数据y和地址x比较的?为什么不是strcmp(y,*x)==0?
1.
STU* FindInChain(STU *head,char *name)
{
STU *p1=head;
while(p1!=NULL) //链表不空
{
if(strcmp(p1->name,name)==0) //打到指定的记录
return p1; //返回此记录(及后续记录)
else p1=p1->next; //在下一条记录中寻找
}
printf("Can't Find the Node!\n");
return NULL; //找不到,则返回空
}
2.
struct student *search(struct student *h,char *x) /*查找链表的函数,其中h指针是链表的表头指针,x指针是要查找的人的姓名*/
{
struct student *p; /*当前指针,指向要与所查找的姓名比较的结点*/
char *y; /*保存结点数据域内姓名的指针*/
p=h->link;
while(p!=NULL)
{
y=p->name;
if(strcmp(y,x)==0) /*把数据域里的姓名与所要查找的姓名比较,若相同则返回0,即条件成立*/
return(p); /*返回与所要查找结点的地址*/
else p=p->link;
}
if(p==NULL)
{
printf("fail to find the data!");
mainmenu();
}
}
问题:strcmp(y,x)==0这个怎么是一个字符数据y和地址x比较的?为什么不是strcmp(y,*x)==0?
搜索更多相关主题的帖子:
指针





2008-9-5 14:51


