作业帮 > 综合 > 作业

C语言用指针引用数组元素

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 23:41:05
C语言用指针引用数组元素
如下所示定义,对数组a中元素的正确引用是() C
int a[2][3], (*p)[3];
p = a;

A、(p+1)[0]
B、*(*(p+2)+1)
C、*(p[1]+1)
D、p[1]+2
这个(*p)[3]经过赋值之后是个什么东西,是几维数组了.为什么选择C啊
这个(*p)[3]没赋值前是个3维数组指针.赋值之后变成2维数组指针了对嘛?
(*p)[3]是定义一个指向一维数组的指针,数组元素为三.也就是说p指向的其实是a[0],a[1],a[2]这样的形式.
p=a;其实就是把第0行的首地址赋值给p.
所以答案C中p[1]即是把第1行的首地址给p,在此基础上向后移一位,取出地址中的元素数值. *(p[1]+1)相当于a[1][1].所以是对的.
B的形式是对的,但是它相当于a[2][1],超出界限所以为错.剩下的两个格式就不对.