我只知道如何使用下面的代码将值存储在数组的最后一个位置:
int main(int argc, char *argv[]){
int x[2][2];
int i, j;
x[2][0] = 1;
printf("%d", x[2][2]);
}
谢谢!
矩阵中的最后一个元素在x[1][1]
中;只是放在这个位置。您的向量只有四个位置从0开始索引到两次两次(对于每个维度);也就是说,x[2][0]
和x[2][2]
均无效-它们访问数组的范围之外。
C中数组的第一个元素编号为0,创建数组时,输入的大小将表示所述数组中元素的数量。因此,数组2的第一个元素将被标记为0,第二个元素将被标记为1,第三个(2)未被分配。
例如,制作一个包含4个变量的数组:
int i[4]
将分配四个int int内存,
i[0]
i[1]
i[2]
i[3]
这些是阵列的有效点。当然,这适用于像您这样的2D阵列。
如果您希望使用3个大数组(就像我想使用的数组元素0和2一样,您只需要声明一个[3]大小的数组,就像您可能理解的那样。
请记住,如果程序在尝试访问的位置分配了一些内存,则访问数组中的无效点可能不会导致程序崩溃,有时会由于这些意外值而产生有趣的结果。
希望这会有所帮助。