如何访问循环外的三维数组

时间:2016-04-22 04:15:42

标签: c arrays

我正在使用C代替我的程序。我正在使用Ubuntu 14.04。以下是我使用的循环之一。

for (x=0; x<1024; x++)
{
    for (i=0; i<8; i++)
    {
        for (j=0; j<8; j++)
        {
            arr[x][i][j]=vi[8*i+j+gi];
        }
    }
    gi = gi+(8*8);
}

这里&#39; vi&#39;是一个单维数组。现在数组&#39; arr&#39;有1024块大小为8x8的块。是否有规定在循环外部访问块(大小为8x8)以进行进一步处理?

2 个答案:

答案 0 :(得分:5)

如果x数组被定义为int x[1024][8][8],这意味着x是一个包含1024个元素的数组,其中每个元素都是int[8][8],即int数组的数组。因此,如果您想获得某些元素,只需使用subscription来访问它,就像访问普通数组一样。例如,您使用x[0]访问x的第一个8x8块,x[1023]以访问最后一个块。

答案 1 :(得分:1)

您可以arr[i][j][k]访问0<=i<=1023,0<=j<=7 & 0<=k<=7