请教一个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]?
谢谢您的解答! 展开
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个回答
展开全部
问题还真不少哦,拙见如下:
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]。
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]。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询