因为你这样定义以后,两个字符串a和b都是字符串常量,不能被修改的。 可以改成如下样子: void copy_string(char *from,char *to); char a[]="I am a teacher."; char b[]="you are a student."; printf("\nstring a=%s\nstring b=%s\n",a,b); printf("copy string a to string b:\n"); copy_string(&a,&b); printf("\nstring a=%s\nstring b=%s\n",a,b);