C语言,给指针字符串单个字符赋值,可以实现吗?

#include<stdio.h>voidmain(){char*str="IloveChina!";str[7]='j';printf("%s\n",str);}像这样... #include <stdio.h>

void main(){
char *str = "I love China!";
str[7]='j';
printf("%s \n",str);
}

像这样,把第8个字符改成别的,这样不行,运行报错,什么vio access的。
有方法能改吗。
展开
 我来答
wanglixin1001
2015-09-20 · TA获得超过4174个赞
知道大有可为答主
回答量:1758
采纳率:80%
帮助的人:874万
展开全部
char *str = "I love China!";修改为

char str[] = "I love China!";

使用字符数组而不是字符指针。因为上一种方式str指针指向一个常量字符串"I love China!"。
追问
噢我懂了。。就是说用字符指针的话,是创建了一个I love China!的字符常量,
然后用指针指向了它,但是这个字符常量是不可修改的。
是这样吗。
追答
是的。
而使用字符数组的话,则使用这个字符串来初始化字符数组,字符数组里的值是复制过来的,则可以修改。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式