C語言中定義字符數組
如:定義字符數組char p1[]="abc";
定義字符指針 char *p2="abc";
上述兩種定義中p1指向的內容是變量,可修改其中的值,而p2指向的內容實際上是常量,不能修改其中的值。
若使用如下定義:
char p1[]="abc";
char *p2=p1;
則此時p2和p1指向的是同一位置,即p2和p1等價。可修改其中的值。
若使用如下定義:
char str[10];
scanf("%s",str);//可以輸入字符串到變量str中。
char *a;
scanf("%s",a);//不提倡這樣使用,此時雖然編譯時已經給a分配內存單元,但a的值並未指定,即a單元中是一個不可預料的值。有可能此時該位置已存放指令或數據。