C 这段代码中的指针错误是什么?

C 这段代码中的指针错误是什么?,c,string,pointers,C,String,Pointers,我试图理解指针,这里有一个K&R程序,我正在尝试实现。 程序是strcpy,代码来自KR /*strcpy: copy t to s; pointer version 3*/ void strcpy(char *s, char *t){ while(*s++ = *t++) ; } 所以为了实现这个程序,我添加了 #include<stdio.h> int main(){ char *s="abc", *t="ABC" ;

我试图理解指针,这里有一个K&R程序,我正在尝试实现。 程序是strcpy,代码来自KR

/*strcpy: copy t to s; pointer version 3*/
void strcpy(char *s, char *t){

while(*s++ = *t++)     
    ;              
}
所以为了实现这个程序,我添加了

#include<stdio.h>
int main(){

    char *s="abc", *t="ABC" ;

    strcpy(s,t);
    printf("%s\n",t);

    printf("%s\n", s);
    return 0;
}
#包括
int main(){
char*s=“abc”、*t=“abc”;
strcpy(s,t);
printf(“%s\n”,t);
printf(“%s\n”,s);
返回0;
}
然而,当我运行它时,我得到了分割错误。我肯定我遗漏了什么,但不太确定是什么


谢谢

文本字符串值存储在只读内存页中;它们不能修改。

文字字符串值存储在只读内存页中;它们不能被修改

char *s="abc", *t="ABC" ;
字符串文字不可修改,但是可以修改
char
数组,因此将其更改为:

char s[] ="abc", *t="ABC" ;
字符串文字不可修改,但是可以修改
char
数组,因此将其更改为:

char s[] ="abc", *t="ABC" ;

可能的复制可能的复制可能的复制可能的复制可能的复制可能的复制谢谢!我现在明白问题了+2为提供解决方案,-1为没有解释。@ElchononEdelson我认为解释是暗示的,无论如何,我已经做了。解释是暗示的,但我觉得解释比暗示好。谢谢!我现在明白问题了+2表示提供解决方案,-1表示没有解释。@ElchononEdelson我认为解释是暗示的,无论如何,我已经做了。解释是暗示的,但我觉得解释比暗示好。谢谢,我现在看到问题了!谢谢,我现在看到问题了!