首页 > 技术文章 > 字符串常量问题

weiyouqing 2017-09-29 11:05 原文

 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“存放在栈区,可读可写;因此以上代码可正常运行;

 

推荐阅读