指针修改字符串的问题
程序代码:#include<stdio.h>
int main()
{
char *ptr = "ABC";
printf("%c\n",ptr[0]);
return 0;
}
我想用只用指针将B改成D,应该怎么写?*(ptr++) = 'D'和ptr[1] = 'D'
都不行,在linux下编译显示段错误
程序代码:#include<stdio.h>
int main()
{
char *ptr = "ABC";
//不可以修改,因为这里的字符串"ABC"是常量, 常量是不可以被修改的
//只有变量才可以修改
//ptr[1] = 'D';
//比如 int i = 5; i 是变量, i除了可以被赋值为5,还是被赋值其他值.
//而5就是常量,是不可以被改的
//若要修改,以下代码
char szStr[] = {"ABC"};
char *ptr1 = szStr;
printf("%c\n",ptr1[0]);
ptr1[1] = 'D';
return 0;
}
