c - 如何在循环外访问三维数组

标签 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);
}

这里 'vi' 是一个一维数组。现在数组“arr”有 1024 个大小为 8x8 的 block 。是否有规定在循环外访问 block (大小为 8x8)以进行进一步处理?

最佳答案

如果 x 数组被定义为类似于 int x[1024][8][8],这意味着 x 是一个包含 1024 个元素的数组,其中每个元素是int[8][8],即int数组的数组。所以如果你想获取某个元素,只需要使用订阅来访问它,就像访问普通数组一样。例如,您使用 x[0] 访问 x 的第一个 8x8 block ,使用 x[1023] 访问最后一个 block 。

关于c - 如何在循环外访问三维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36784711/

相关文章:

c - 向我解释以下 C 程序的输出

c++ - 将无符号的int地址视为指针,并将其解引用为字节数组

php - 更改数组中的键

python - 使用另一个数组的索引索引一个 numpy 数组

c++ - 删除指针成员变量的数组内存

java - Java中如何持续分配内存直到分配完3GB?

android - java.lang.string 类型的 jsonexception 值 <br 无法转换为 jsonarray

c - 为什么数据段(ds)是0?甚至还有其他合法变量(整数)

c - 为什么结构体中的变量没有被分配任何值?

C:在 for 循环中创建结构体数组