c语言问题,高手指点一下

来源:百度知道 编辑:UC知道 时间:2024/06/28 15:54:35
有以下定义错误的赋值是 且0=<i<5,错误的赋值是

A .p=a B. s【i】=a【j】 C. p=a【i】 D. s【i】=&a【2】【0】

int *s【5】,a【5】【10】,*p,i;

新手,望高手能够解释清楚,谢谢
答案说是选A啊

p是一级指针,a 是二级指针,A指向一个数组,P指向一个整型值--A错误
s[i]是一个指向整型的指针,a[j]是存放整型元素的数组。--B正确
p是一个指向int类型的指针,a[i]是数组--C错
&a[2]是二级指针,s[i]是一级指针--D错

c错,应该是p=&a[i]

A 应该是p=a[0] a是二维数组a[0]代表它的首地址

a 应该是 p=a[i];因为p是指向int类型的指针,而a是指向int类型地址的指针