常量字符串

来源:互联网 发布:红米只能用2g网络 编辑:程序博客网 时间:2024/04/26 17:38

在写代码的过程中遇到这么一个问题:

char *str = "abc";char *A = str;char *B = str+1;printf("A:%c, B:%c\n", *A, *B);*A = 'c';*B = 'c';printf("%s\n", str);

编译后运行报错:

Press ENTER or type command to continue
A:a, B:b

Command terminated

*A,*B显示有值,但是运行报错。后将代码改为下面的,还是同样报错。

char *str = "abc";char *A = &str[0];char *B = &str[1];printf("A:%c, B:%c\n", *A, *B);*A = 'c';*B = 'c';printf("%s\n", str);


开始一直没找到原因。

后面才了解到char *str = "abc";表示的是一个字符串常量,不能赋值,修改。

将char   *str = "abc";  改为   char str[]  = "abc";就可以了。

原创粉丝点击