在C中,是否可以将值存储在数组的最后一个位置?

问题描述 投票:-2回答:2

我只知道如何使用下面的代码将值存储在数组的最后一个位置:

int main(int argc, char *argv[]){
  int x[2][2];
  int i, j;

  x[2][0] = 1;
  printf("%d", x[2][2]);
}

谢谢!

c arrays position gnu
2个回答
1
投票

矩阵中的最后一个元素在x[1][1]中;只是放在这个位置。您的向量只有四个位置从0开始索引到两次两次(对于每个维度);也就是说,x[2][0]x[2][2]均无效-它们访问数组的范围之外。


0
投票

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]大小的数组,就像您可能理解的那样。

请记住,如果程序在尝试访问的位置分配了一些内存,则访问数组中的无效点可能不会导致程序崩溃,有时会由于这些意外值而产生有趣的结果。

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.