设有语句int *p[3],a[3]下列选项中正确的赋值是()
A.p=a;
B.*p=a[0]
C.p=&a[0];
D.*p=a;
答案给的是D
但ABC错在哪里呢,求详细解答
A p是有三个int*指针成员的数组,而a是三个int成员的数组,不一致
B p 是p中第一个int指针成员,a[0]是a中第一个 int成员,不一致
C &a[0]是a中第一个int成员的地址,相当于int *,但p是多个int 指针成员的数组,不匹配
D p是第一个int指针成员,a相当于int,所以可以赋值