int a[3][4]为什么要用int (*p)[4]而不是int (*p)[3]或int (*p)[5]
展开全部
首先要理解 a[3][4] 他表示定义了一个元素是4 的数组,而每个元素又是一个元素为3的数组,这就是二维数组。但是他在内存中的表现和 a[12]是一样的。(*p)[4]表示一个元素为4的数组,每个数组的元素是一个int*的指针。因为数组的对象 有的时候会被弱化成指针,所以这里元素为3的数组对象等价于*p。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int a[3][4] 二维数组
int (*p)[3] 这个是数组指针,数组名的指针,即数组首元素地址的指针。即是指向数组的指针。
int *p[4] 这个是指针数组,指针数组中的每一个元素均为指针,
一般来说这上边的三种写法比较等价,都很常用,如果不清楚的话,可以仔细的查看一下
二维数组,指针数组,数组指针这三个概念的区别。
int (*p)[3] 这个是数组指针,数组名的指针,即数组首元素地址的指针。即是指向数组的指针。
int *p[4] 这个是指针数组,指针数组中的每一个元素均为指针,
一般来说这上边的三种写法比较等价,都很常用,如果不清楚的话,可以仔细的查看一下
二维数组,指针数组,数组指针这三个概念的区别。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这是在疑惑什么呢?这是2维数组的声明方式啊,第二维本身就是4,int (*p)[3]或int (*p)[5]当然不一样了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询