请教一个C语言问题,谢谢您的回答!

首先定义一个三维数组:intA[2][3][4]={0};1.数组名A是一个三级指针,指向的是一个3*4的二维int数据结构。我的问题是:为什么是指向3*4的二维数据结构... 首先定义一个三维数组:int A[2][3][4]={0};

1.数组名A是一个三级指针,指向的是一个3*4的二维int数据结构。
我的问题是:为什么是指向3*4的二维数据结构?这里的“3*4”是怎么得到的?

2.A[0]是一个2级常指针,指向一个大小为4的一维数组结构。
问题是:中括号 [ ]中的“0”怎么理解呢?
为什么又是指向大小为4的一维数组?
为什么说A,A[0],A[0][0]的值同为 &A[0][0][0]?

谢谢您的解答!
展开
 我来答
百度网友dad142f
2011-07-09 · TA获得超过9905个赞
知道大有可为答主
回答量:1548
采纳率:100%
帮助的人:1876万
展开全部
问题还真不少哦,拙见如下:
1、我们知道一个数组的数组名就是该数组的首地址,把么也就是一个指针了,所以A是指向一个二维数组的指针。(我们不妨将A[0]、A[1]记为x、y。那么A指向的数组就是x[3][4]、y[3][4])
2、因为一个数组的元素个数前面的标识符,我们可以看作是该数组的数组名,那么这儿的A[0]就是二维数组的数组名了(相当于上面提到的x)。而刚刚我们看到了可以将A[0]视作是x[3][4]中的x,那么我们知道x事实上是指向大小为4的一维数组的,那么A[0]就是指向大小为4的一维数组了。
另外A是三维数组的数组名,所以代表该三位数组的首地址(也就是0行首地址),也即 &A[0][0][0],而A[0]我们刚刚提到了,它相当于二维数组的首地址,也就是0行0列的首地址,所以是 &A[0][0][0]。而A[0][0]相当于一维数组的首地址,也就是0行0列0纵的首地址,所以也是 &A[0][0][0]。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式