向大家请教c语言基础题

char s[5][6],(*k)[8],*p则以下赋值语句中正确的是()。
(A)p=s;
(B)p=k;
(C)p=s[1];
(D)s=k;

c对
字符型一维指针p只能指向一个一维数组,如 char s[3],而不能指向二维数组的地址,所以选项A)错误。p应该为字符型变量的地址,而不能为数组指针的地址,所以选项B)错误。k为数组指针,但如果想将s的地址赋给它,定义 s为char s[8],所以选项D)错误。

img

C
s,k都是二维指针,s[1]是一个指针,跟p类型相同。

答案是C
p 是一维,剩下的你就明白了

A
数组名本身就是数组中第一个元素的地址
p是个指针,p跟s同类