1.char *a
a是一个指向已知字符串的指针,实质是指针。
2.char arr[]
arr本身是一个字符串数组,arr指向该数组的第一个元素,实质是数组。
3.char*a 与char arr[]
3.1 赋值区别
在1中,s是数组名,当成是常量指针,不可以作为左值修改;而2中s是一个指针变量,可以将其指向一个字符串常量。
3.2 大小区别
char str[] = { "abcd" },sizeof(str) = 5,strlen(str) = 4
char *str = {"abcd"},sizeof(str) = 4,strlen = 4
3.3 转换方法
3.3.1 把char arr[]赋值给char *a
很简单: char arr[]={"qwer"}; char *a=arr;即可。
3.3.2把char* 赋值给char arr[]
需要通过循环来一个一个地赋值