高手请您解答一下我的问题吧,谢谢!
首先定义一个三维数组: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]? 展开
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]? 展开
1个回答
展开全部
首先,数组变量是指向数组首个元素所在的内存地址。无论数组是几维的,在内存中存放都是连续的。
int A[2][3][4]={0};
在内存中的存放形式:
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
A、&A 是指向首个元素的内存地址。
A[0]、&A[0] 是指向首个元素的 0 偏移位置,还是首个元素的内存地址。
A[0][0]、&A[0][0] 是指向 A[0]、&A[0] 的 0 偏移位置,依然是首个元素的内存地址。
依此类推。
int A[2][3][4]={0};
在内存中的存放形式:
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
A、&A 是指向首个元素的内存地址。
A[0]、&A[0] 是指向首个元素的 0 偏移位置,还是首个元素的内存地址。
A[0][0]、&A[0][0] 是指向 A[0]、&A[0] 的 0 偏移位置,依然是首个元素的内存地址。
依此类推。
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询