数组和指针在做函数参数时有何区别?
最近看到这样一个程序:
#include <stdio.h>
void mystrcat(char *dest, char* source)
{
char *cp;
cp=dest;
while( *cp )cp++;
while(*cp++ = *source++);
}
int main()
{
char *str1="abcde";
char *str2="fgh";
mystrcat(str1,str2);
printf("%s",str1);
return 0;
}
程序运行后总是在mystrcat函数的while(*cp++ = *source++);一句中停下不继续执行并报错,而把主函数中的char *str1="abcde";改为char str1[]="abcde";然后再运行就OK了,请问数组和指针在做函数参数时有什么区别啊?