char* a = "abc";
聲明了一個字符類型的指針a,並為它賦值初始值為"abc",a的值是字符串"abc"的首地址【第一個字符的地址】
其中字符串"abc"應屬於全局靜態存儲區,這里對a[1] = 'a',在編程中會出錯
char a[] = "abc";
聲明了一個字符型數組,並賦初值。這里的字符串"abc"應該是屬於堆存儲區,是在局部開辟的空間。
所以,這里對a[1] = 'b';是正確的。由於數組類型a相當於一個const型的指針,所以a = null;會出錯。