爲何???字符串字面量初始化給數組時能夠更改,而初始化給指針不能更改?

      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 }  字符串

相關文章
相關標籤/搜索