指针指向二维数组的问题

指针指向二维数组的问题如图,此处第五行for函数中p=a[0];为啥不直接写成p=a;第六行if语句,是不是可以理解成函数一来就会先换行啊,因为p-a[0]=0,然后除4... 指针指向二维数组的问题如图,此处第五行for函数中p=a[0];为啥不直接写成p=a;第六行if语句,是不是可以理解成函数一来就会先换行啊,因为p-a[0]=0,然后除4余数还是0吧 展开
 我来答
折柳成萌
高粉答主

2018-03-30 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:6362万
展开全部
  • 可以

  • C中没有真正意义上的二维数组,是通过一维数组扩展实现的,数组的每一项再存放指向一维数组的手指针。例如:

  • int a[4][5];

  • int (*p)[5]

  • p=a

  • 这里的p即为a[4]的首地址,也就是说p指向了4*5的数组,指针里的5表示第二维度数组的长度即第一行数据的个数,如果b中int (*p)[<5],则会不够存储A中数组第二维度的长度,就会出错。

  • 最终存储的二维数组将会全部展开成一维数组,所以你直接申明int *p 指向该二维数组,那么这里的p即为a[0][0],p+6即为a[1][0]

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式