我要疯了.指针,指针..各位大侠帮我看看吧..
char* stringcat(char* a,char*b)
{
char* p=a;
while(*a)//这样写是正确的
{
a++;
}
while(*a++=*b++);
return p;
}
char* stringcat(char* a,char*b)
{
char* p=a;
while(*a++);//这样写就会出现错误
while(*a++=*b++);
return p;
}
上面两个函数中指针a都是在遇到结束符的时候结束.为什么一个能连接成功,一个不能连接成功.百思不得其解,调试了半天还是没摸到头绪...各位前辈帮帮忙把,解决不了,我睡不着觉....
[解决办法]
*a++的意思是把a指向的内容+1,当到字符串结尾时,*aj是'\0',+1就为1,判断永远为真,真到碰到一个值为-1的字节才结束
[解决办法]
char* stringcat(char* a,char*b)
{
char* p=a;
while(*a)//这样写是正确的 //判断 *a是否是'\0'
{
a++;//指针加一,指向下一个指针
}
while(*a++=*b++);
return p;
}
char* stringcat(char* a,char*b)
{
char* p=a;
while(*a++);//这样写就会出现错误 //第一个字符不断加1,结果是字符越界(>256)报错
while(*a++=*b++);
return p;
}