一道c语言的题目(38

int a[4][10],*p,*q[4];且0《i<4
赋值错误的是
1,p=a
2,q[i]=a[i]
3,p=a[i]
4,p=&a[2][1]
求为什么

1错了。a是二维数组,而p是指针,不能相互赋值。如果p是指向指针的指针,那样就可以赋值了
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-14
2错了*p[i]是指针数组存放的值应该为指针本回答被网友采纳
第2个回答  2012-09-14
int a[4][10] // 这是定义一个整型二维数组
int *p //这是定义一个指向整型的指针
int *q[4] //这是定义一个指向整型的指针数组

1,p=a //a是二维数组名,也就是二维数组首元素的地址,p是一个指向整型的指针,把地址赋值给指针,正确。
2,q[i]=a[i] //q[i]是一个指针,a[i]是i+1行首元素的地址,赋值合法,正确。
3,p=a[i] //p是一个指向整形的指针,a[i]是i+1行首元素的地址,赋值合法,正确。
4,p=&a[2][1] //p是一个指向整形的指针,&a[2][1]是第三行第二个元素的地址,赋值合法,正确。

所以你这题就没有错误的选项。不知我说的对不对
第3个回答  2012-09-14
应该是 2吧! 我觉得 两个一个是二维数组,一个是指针!