a是数组名也就是数组的首地址!
*p=a;就是把a数组的数组首地址复制给指针p
*p[3]运算就相当于a[3]
指针变量都是整形的变量,你给a数组的第4个元素赋值"abc",那么你的数组a应该是char型的吧??
int *p[3] = "abc";
符合语法吗,类型不对哦?
这样才行的:
char *p[3] = {"aaa","bbb","ccc"};
*p[3]是指针数组,p可以变化
a[3]就是一个一维数组,a不能变化。首地址是a或者是&a[0]
int *p[3]表示定义一个指向整形变量的数组指针,int *p[3]="abc"是错误的。