黑马程序员技术交流社区

标题: 关于 char namep[20]与 char *namep 的区别 [打印本页]

作者: qiujunwen123    时间: 2016-1-3 00:54
标题: 关于 char namep[20]与 char *namep 的区别
void ChaZhao(){  //这是一个查找结构体内相同姓名,然后输出姓名,电话号码的函数
    int j;
                char namep[20];                       //这地方这么定义可以使用,但是定义成 char *nemp 就不能使用,这是为什么?
                printf("请输入要查找的姓名:") ;
                scanf("%s",&namep);
                    for(j=0;j<totalShuLiang;j++){
                            if(strcmp(namep,contacts[j].Name)==0){
                            printf("NAME                      TEL                  \n");
                            printf("%s                        %s                   \n",contacts[j].Name,contacts[j].Num);
                            break;
           
                    }
        }
        }


作者: 一步步往上爬    时间: 2016-1-3 12:42
用数组可以接收用户键盘的输入,用指针就不行了,所以在这里要接收用户输入得用数组
作者: yfh349958021    时间: 2016-1-3 13:16
数组凸显出了它的特殊作用!
作者: qiujunwen123    时间: 2016-1-6 13:38
一步步往上爬 发表于 2016-1-3 12:42
用数组可以接收用户键盘的输入,用指针就不行了,所以在这里要接收用户输入得用数组 ...

回答的有点意思,其实为什么char *p ="hello!" ,printf("%s",p);可以输出,其实也是利用了printf函数一直输出知道‘\0'的这个特点
作者: qiujunwen123    时间: 2016-1-6 13:40
yfh349958021 发表于 2016-1-3 13:16
数组凸显出了它的特殊作用!

建议你去百度一下,char  *P  跟 char  aa[]的区别,主要是数据存储地方的因素决定了,而且 strcmp 函数如果用指针的话,一个是地址,一个是字符串无法进行比较,如果取值   *p  的话,那么也是取首地址的值,strcmp同样无法比较。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2