8.32 C语言,有下列定义语句char s[3][10],(*k)[3],*p下列赋值语句是正确的是p=sp=kp=s[0];k=s求解求为什么不是说一维指针指向不能和二维数组么?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/14 15:37:58

8.32 C语言,有下列定义语句char s[3][10],(*k)[3],*p
下列赋值语句是正确的是
p=s
p=k
p=s[0];
k=s
求解求为什么
不是说一维指针指向不能和二维数组么?

p=s //s是二维数组的首地址,类似**s,而p是一维指针,不正确
p=k //k是一个指向3个char类型数组的指针,类型不同
p=s[0]; //这个是正确的.s[0]是s第一维数组的首地址,类似char a[5];char *p = a;
k=s //k和s不同类型