| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 307 人关注过本帖
标题:指针问题.
收藏  订阅  推荐  打印 
无悔大学四年
Rank: 1
来自:广西桂林
等级:新手上路
帖子:19
积分:152
注册:2008-5-31
指针问题.

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
qfyzy
Rank: 3Rank: 3
来自:安徽合肥
等级:中级会员
威望:1
帖子:344
积分:3728
注册:2008-2-17

*X只是一个字符~
printf("%c",*x);

当对C的经验增加时,它会显的很好用.----Dennis M Ritche如是说
2008-9-5 14:54
awnucel
Rank: 2
等级:注册会员
威望:1
帖子:68
积分:804
注册:2006-12-13

struct student *search(struct student *h,char *x)

你看好,参数最后一个,是char* x 不是 char x,怎么说是单字符
2008-9-5 14:54
无悔大学四年
Rank: 1
来自:广西桂林
等级:新手上路
帖子:19
积分:152
注册:2008-5-31

y=p->name;为什么可以这样赋值的啊?意思是?
2008-9-5 15:03
learnerboy
Rank: 2
等级:注册会员
帖子:123
积分:1335
注册:2007-11-11

人家说的是*c代表的只是一个字符!
2008-9-5 15:08
中学者
Rank: 12Rank: 12Rank: 12
等级:版主
威望:11
帖子:3376
积分:34542
注册:2007-9-14

看看高手解答-,-

汇编.....
2008-9-5 15:19
无悔大学四年
Rank: 1
来自:广西桂林
等级:新手上路
帖子:19
积分:152
注册:2008-5-31

多谢大家的指点。我对指针还是很陌生,先回去看书...
2008-9-5 15:20
shade1220
Rank: 2
等级:注册会员
帖子:83
积分:1004
注册:2008-8-5

strcmp(y,x)==0   x,y都时指针,在函数种当作参数,指向其他内存地址种的内容
2008-9-5 21:48
cosdos
Rank: 6Rank: 6
来自:ShangHai
等级:金牌会员
威望:1
帖子:1377
积分:14374
注册:2007-6-19

struct student *search(struct student *h,char *x) /*查找链表的函数,其中h指针是链表的表头指针,x指针是要查找的人的姓名*/
{
    char *y; /*保存结点数据域内姓名的指针*/

        if(strcmp(y,x)==0) /*把数据域里的姓名与所要查找的姓名比较,若相同则返回0,即条件成立*/
}

y和x都是 char * 类型的

strcmp() 比较两个字符串是否相同

函数原型: int strcmp( const char *str1, const char *str2 );

[ 本帖最后由 cosdos 于 2008-9-6 01:56 编辑 ]

—>〉Sun〈<—
2008-9-6 01:55
无悔大学四年
Rank: 1
来自:广西桂林
等级:新手上路
帖子:19
积分:152
注册:2008-5-31
回复 9# 的帖子

好久没来了~~大家这么热心,而我没来得急说声"谢谢",真过意不去啊~~~
2008-10-29 23:50
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.072698 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved