1.char *a
a是一個指向已知字符串的指針,實質是指針。
2.char arr[]
arr本身是一個字符串數組,arr指向該數組的第一個元素,實質是數組。
3.char*a 與char arr[]
3.1 賦值區別
在1中,s是數組名,當成是常量指針,不可以作為左值修改;而2中s是一個指針變量,可以將其指向一個字符串常量。

圖1

圖2
3.2 大小區別
char str[] = { "abcd" },sizeof(str) = 5,strlen(str) = 4
char *str = {"abcd"},sizeof(str) = 4,strlen = 4

str[]={"abcd"}

char *str = {"abcd"}
3.3 轉換方法
3.3.1 把char arr[]賦值給char *a
很簡單: char arr[]={"qwer"}; char *a=arr;即可。
3.3.2把char* 賦值給char arr[]
需要通過循環來一個一個地賦值