#include <stdio.h>
int main()
{
void change(char p[]);
char a[] = "I am a girl.";
change(a);
printf("%s\n", a);
return 0;
}
void change(char *p)
{
p = "I am a boy";//倒数第四行
*p = 'Y';//倒数第三行
printf("%s\n", p);
}
倒数第三行和倒数第四行,只要任意删除一行,编译都能通过,但是放在一起的话,倒数第三行就会出现问题,为什么呢?原本函数的过程是,重新给p指向 "I am a boy",并把首字符改为'Y'.