char *a [ ]
由于[ ] 的优先级高于* 所以a先和 [ ] 结合,他还是一个数组,数组中的元素才是char * ,前面讲到char * 是一个变量,保存是的地址。如 char *a[ ] = {"China","French","America","German"};sizeof(a) = 16,字符串常量的本质是地址,a 数组中的元素为char * 指针,指针变量占四个字节,那么四个元素就是16个字节
#include <stdio.h>
int main()
{
char *a [ ] = {"China","French","America","German"};
printf("%p %p %p %p\n",a[0],a[1],a[2],a[3]);
return 0;
}