p可以看作二级指针,*p是一级指针,a可以看作一级指针,a[0]是个变量,&a[0]是一级指针,其实就是a
p
*p
a
a[0]
&a[0]
那么所以 *p = &a[0];才算作是统一类型的数据赋值。
*p = &a[0]
int *p[3],数组p中存储的是指向int的指针,int a[3],数组a中存储int型的数。p表示的是&p[0],即p[0]的地址。同理a即&a[0]。p是p[0]的地址,不可以被赋值。C错。D不知道你错的点在哪。