int **a[3][4]是双指针类型的2维数组,
int *a[3][4]是指针类型的2维数组,
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。
扩展资料
在一维数组 b 中,数组名 b 代表数组的首地址,即数组第一个元素的地址,b+1 代表数组第二个元素的地址,…,b+n 代表数组第 n+1 个元素的地址。
所以既然 a[0]、a[1]、a[2]、…、a[M–1] 分别表示二维数组 a[M][N] 第 0 行、第 1 行、第 2 行、…、第 M–1 行各一维数组的首地址,
那么同样的道理,a[0]+1 就表示元素 a[0][1] 的地址,a[0]+2 就表示元素 a[0][2] 的地址,a[1]+1 就表示元素 a[1][1] 的地址,a[1]+2 就表示元素 a[1][2] 的地址……a[i]+j 就表示 a[i][j] 的地址。
int *a[3][4]是什么意思?int **a[3][4]是双指针类型的2维数组,
int *a[3][4]是指针类型的2维数组,
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。
扩展资料
二维数组A[m][n],这是一个m行,n列的二维数组。设a[p][q]为A的第一个元素,即二维数组的行下标从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:
LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t
按“列优先顺序”存储时,地址计算为:
LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t
存放该数组至少需要的单元数为(m-p+1) * (n-q+1) * t 个字节。扩展资料
在一维数组 b 中,数组名 b 代表数组的首地址,即数组第一个元素的地址,b+1 代表数组第二个元素的地址,…,b+n 代表数组第 n+1 个元素的地址。
所以既然 a[0]、a[1]、a[2]、…、a[M–1] 分别表示二维数组 a[M][N] 第 0 行、第 1 行、第 2 行、…、第 M–1 行各一维数组的首地址,
那么同样的道理,a[0]+1 就表示元素 a[0][1] 的地址,a[0]+2 就表示元素 a[0][2] 的地址,a[1]+1 就表示元素 a[1][1] 的地址,a[1]+2 就表示元素 a[1][2] 的地址……a[i]+j 就表示 a[i][j] 的地址。
int **a[3][4]是双指针类型的2维数组,
int *a[3][4]是指针类型的2维数组,
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。
扩展资料
二维数组A[m][n],这是一个m行,n列的二维数组。设a[p][q]为A的第一个元素,即二维数组的行下标从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:
LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t
按“列优先顺序”存储时,地址计算为:
LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t
存放该数组至少需要的单元数为(m-p+1) * (n-q+1) * t 个字节
int **a[3][4]是双指针类型的2维数组
int *a[3][4]是指针类型的2维数组
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。
定义了一个二维指针数组
简单的讲就是这个数组a包含了12个指针,分别是*a[0][0], *a[0][1], *a[0][2], *a[0][3]
*a[1][0], *a[1][1], *a[1][2], *a[1][3]
*a[2][0], *a[2][1], *a[2][2], *a[2][3]