指针指向二维数组的问题
指针指向二维数组的问题如图,此处第五行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吧
展开
展开全部
可以
C中没有真正意义上的二维数组,是通过一维数组扩展实现的,数组的每一项再存放指向一维数组的手指针。例如:
int a[4][5];
int (*p)[5]
p=a
最终存储的二维数组将会全部展开成一维数组,所以你直接申明int *p 指向该二维数组,那么这里的p即为a[0][0],p+6即为a[1][0]
这里的p即为a[4]的首地址,也就是说p指向了4*5的数组,指针里的5表示第二维度数组的长度即第一行数据的个数,如果b中int (*p)[<5],则会不够存储A中数组第二维度的长度,就会出错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询