字符串常量问题

 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“存放在栈区,可读可写;因此以上代码可正常运行;
原文地址:https://www.cnblogs.com/weiyouqing/p/7610088.html