当定义一个字符串常量:
char *arr = "aecd";
发现”aecd”的’b’错写成了’e’,当试图去更改的时候,程序会崩溃:
char *arr = "aecd";
arr[1] = 'b';
这是因为字符串常量存储在常量区(静态存储区),这部分区域是不允许修改的,而指针arr指向的是”aecd”的地址,并不是这个值,如下所示:
字符数组的值可以修改,例如:
char arr[] = "aecd";
arr[1] = 'b';
printf("%s\n",arr);
return 0;
内存划分出五个字节的区域来存储’a’,’e’,’c’,’d’和’\0’,每个字符占一个字节: