关于指向字符串的指针 char c[] 和 char *c 区别
char c[]="abc"
char *c ="abc"
把c当做参数传入到另一个函数 这两种定义当时会有不同的结果, 为什么啊?
难道不一样吗? 我一直以为这里都一样。我记得书上讲的也是都指向abc这个char型数组的首地址啊?
第一个程序 运行正常。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
void main(){
Stu *head;
createLink( &head );
printf("%d\n",head );
char c[]="aaa" ;
poTest(c);
}
void poTest(char *p ){
printf("%c\n",*p );
char *end=p+3;
char *start=p;
for (;p<end;p++)
{
*p='b';
}
p=start;
for (;p<end;p++)
{
printf("%c",*p );
}
}
------------------------------------------------------------
???????? ???????????????????????
void main(){
char *c="dfg" ; // 这种定义方式和 char c[]="aaa" ; 难道不是一样的么?
char *end=c+2; //
poTest(c);
}
void poTest(char *p ){
char *start=p;
printf("%c\n",*p ); //p指向字母d
char *end=p+2; //end指向字母g
for (;p<end;p++) //这个循环报错?----- 而且要是把上面改成char c[]="dfg" 就OK了?
{
*p='b';
}
}