指针修改字符串的问题
程序代码:
#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; }