C语言这道题该怎么做。

img

int *p[3],a[3];等价于
int *p[3];
int a[3];
p是一个指针数组,p中的每个元素都是int型的指针。
a是数组首地址(是一个数组指针),所以A是不对的。
*p是取指针数组中的第一个元素,其值是一个int指针,a[0]是一个int值,所以B也是错误的
&a[0]就是去第一个元素的首地址,&a[0]等于a,所以C跟A是一个错误。
p[0]是取指针数组的第一个元素,值是一个int指针,&a[0]是取数组a中第一个元素的地址,也是一个int指针,所以D是正确的。

请你把提问文字写出来。