1 char *pstr = "HAC"; 2 pstr[0] = pstr[1];//error
问题:为何第二行操作,会出现段错误?
printf("%p\n",pstr);
因为一个指向系统常量区("HAC"的存放位置)的指针是只读的,可以用一个数组去存HAC
因为它指向的字符串是常量....
你把他指向数组.再给数组赋值.再写你这代码就没问题了
因为 pstr 是字符串常量