一个关于C语言的问题

这是一个指针数组的问题,对于我来说还有点困难,我选的C,但我对于这四个选项都不太明白,还希望能解析一下。

img

记住char *a[2]的意思就是一个具有两个元素的一维数组 。数组的每个元素是一个char * 指针而已
所以A显然是错误的,数组元素只是两个指针
B也是错误的,理由和A是一样的
C是错误的,字符串"abcd"和"ABCD"都有5个字符,最后一个是字符串结束符
D是对的,一个指针指向了一个地址而已。这个地址分别指向a字符和A字符

A.首先a是一个指针数组,里面存的是指针,指针的值是地址,不是字符串,所以说值是字符串肯定是错的.*a里才是字符串
B.a指向的不是字符型一维数组,而是char指针型一维数组
C.“abcd”应该是5个元素,字符串以\0结尾
D是对的,字符串的地址和首个字符的地址相同