如何在C中的数组中生成地址,比如说[x] [y]如何得到一个特定的值,我知道这不是一个大问题,而是实际开始编码。
答案 0 :(得分:3)
根据您考虑过的数组的数据类型,它已完成。
假设对于一个Integer数组,每个值保存4个字节,因此行X long将占用4个字节。
因此,X * Y的2-D矩阵将是4 * X * Y字节。任何地址都说Arry [X] [Y]会 计算公式为:( Arry的基地址) +(X *列数)+(Y //当前行中的偏移量)
答案 1 :(得分:1)
C中的二维数组是矩形的。例如:
int matrix[2][3];
分配一个大小为2*3*sizeof(int)
个字节的内存块。处理matrix[0][1]
只需将0 * (3 * sizeof(int))
添加到sizeof(int)
即可。然后将该总和添加到matrix
开始的地址。
答案 2 :(得分:0)
嵌套数组是一个数组数组。
例如,int[][6]
是int[6]
的数组
假设一个4字节int
,外部数组中的每个元素都是6 * 4
= 24字节宽。
因此,arr[4]
获取外部数组中的第三个数组,或*(arr + 4 * 24)
。
arr[4]
是正常int[]
。 arr[4][2]
获取此内部数组中的第二个int
,或*(arr + 4 * 24 + 2 * 4)
答案 3 :(得分:0)
E.g。
char anArray[][13]={"Hello World!","February","John"};
您可以将其视为:
anArray
:
H|e|l|l|o| |W|o|r|l|d|!|\0|F|e|b|r|u|a|r|y|\0|\0|\0|\0|\0|J|o|h|n|\0|\0|\0|0|\0
^ ^ ^
0 13 26