1. 程式人生 > >字串在指標和陣列上賦值的區別

字串在指標和陣列上賦值的區別

1  #include<stdio.h>
2  int main()
3  {

4     char *str1 = "abcde";// 字串常量
5     char str2[] = "abcde";// 字元陣列
6    str1[0] = 'x';//error
7    str2[0] = 'x';
8    return 0;
9    }

注:程式碼執行到第6行崩潰

*str1是一個指標,它儲存的是地址,而不是儲存字串"abcde",所以 不能把'x'賦值給str1[0]。但是因為沒有語法錯誤,所以系統不報錯。

str2是一個數組,它儲存的是字串"abcde",可以把'x'賦值給str2[0]。