请问char *p=s;与char *p;*p=s;有什么区别?
int strlen(char *s){
char *p;
*p=s;
while(*p!='\0')
p++;
return(p-s);
}这个编译时出错
int strlen(char *s)
{
char *p=s;
while(*p!='\0')
p++;
return(p-s);
}
这个编译正确?
我相问问请问char *p=s;与char *p;*p=s;有什么区别?
搜索更多相关的解决方案:
char
----------------解决方案--------------------------------------------------------
我想通了,原来char *p=s;相当于是char *p;p=s;哈哈
----------------解决方案--------------------------------------------------------
char *p=s;
等价于char *p; p=s; 就是给指针变量p赋值;
char *p;*p=s;
而这个却是给指针p指向的变量赋值s;
所以你的第一个程序是错的,因为你试图把一个指针变量赋给一个字符变量。
----------------解决方案--------------------------------------------------------
指针定义一般定义:
char *p = NULL; //NULL为空指针
对指针空间赋值:
*p = 0; //p指针所指空间设为0
在你的程序中,p和s同为指针,可以直接传递
修改:
int strlen(char *s)
{
char *p;
p=s; //将*去掉,OK
while(*p!='\0')
p++;
return(p-s);
}
----------------解决方案--------------------------------------------------------
谢谢大家了
----------------解决方案--------------------------------------------------------
我以一颗中国心,表达我的爱国情
----------------解决方案--------------------------------------------------------