当我们代码中有下面这两行代码的时候:
char *c = "abc";
c[2] = 'f';
我们是无法通过编译的,因为指针c指向的字符串“abc”在常量区,而常量是不能够被改变的。我们可以对上面的两行代码做以下修改使得编译可以通过:
char c[] = "abc";
c[2] = 'f';
下面两行代码与上面的不同之处在于我们将常量区的字符串“abc”中的值:‘a’ ‘b’ ‘b’ 复制给了数组c中的c[0],c[1],c[2]。而数组c中的各个元素是存储在栈区的,这样我们就可以对数组中的指定元素进行修改。