字符數組:
char a[2]={'a','b','c'};
char a[]={'a','b','c'};
字符串:
char a[3]={“abc”};
char a[3]="abc"; //此處可以省略大括號
char a[]="abc"; // 與char a[3]={'a','b','c','\0'}; 相同
紅字表明的地方爲什麼要變成3呢,因爲字符串賦值給數組後,在最後會默認增加一個字符“\0”,多佔用一個字符,如果定義的數組空間不夠,可能引起存儲錯誤,更改系統內存中其它數據,導致嚴重後果,如:
char a[2]="abc";
a[0]='a',
a[1]='b',
a[2]='c',
(a+3)指向地址空間被賦值爲'\0',而這並不是程序所希望的,擅自刪改內存中的數據,後果可想而知。