为何???字符串字面量初始化给数组时能够更改,而初始化给指针不能更改?

      1 #include <stdio.h>
      2
      3 int main(int argc, char *argv[])
      4 {
      5     //"hello world!"不是常量吗?为何能够经过p[i]和*(p+i)来修改。
      6     char p[] = "hello world!";
      7     //p[2] = 'L';
      8     //printf("%s\n", p);
      9     //*(p+2)='e';
     10     //printf("%s\n", p);
     11     
     12     char *str = "goodbye world!";
     13     /*** 一样,*str 经过 str[i] 和 *(str+i_) 来修
     14          改字符串时,可以编译经过,执行时发生段错误。***/
     15     //str[2] = 'Z';
     16     //printf("%s\n", str);
     17     //*(str+2) = 'Z';
     18     //printf("%s\n", str);
     19     
     20     return 0;
     21 }  字符串

相关文章
相关标签/搜索