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的。
有方法能改吗。 展开
void main(){
char *str = "I love China!";
str[7]='j';
printf("%s \n",str);
}
像这样,把第8个字符改成别的,这样不行,运行报错,什么vio access的。
有方法能改吗。 展开
1个回答
展开全部
char *str = "I love China!";修改为
char str[] = "I love China!";
使用字符数组而不是字符指针。因为上一种方式str指针指向一个常量字符串"I love China!"。
char str[] = "I love China!";
使用字符数组而不是字符指针。因为上一种方式str指针指向一个常量字符串"I love China!"。
追问
噢我懂了。。就是说用字符指针的话,是创建了一个I love China!的字符常量,
然后用指针指向了它,但是这个字符常量是不可修改的。
是这样吗。
追答
是的。
而使用字符数组的话,则使用这个字符串来初始化字符数组,字符数组里的值是复制过来的,则可以修改。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询