char *a = "abc"; char b = 'D'; a[0] = b; 这里“abc”为字符串常量,存放在常量区,只读不可写;指针a指向字符串‘a’的地址; 以上代码不能成功运行,因为 a[0] = b; 这代码为修改常量区的值; char a[4] = "abc"; char b = 'D'; a[0] = b; 这段代码则能够成功运行,因为“abc“存放在栈区,可读可写;因此以上代码可正常运行;