c - 如何在 C 中声明和初始化 4 维数组

标签 c arrays multidimensional-array

我对编程比较陌生,我需要输入一个 4 维数组,我几乎无法理解它。所以,让我们从一个简单的 3 维数组开始,每个元素有 2 个,如下所示:

int arr[2][2][2] = 
{
    {
        {1, 2}
        {3, 4}    //redline on "{"
    }
    {             //redline on "{"
        {5, 6}
        {7, 8}
    }
};

VS-2012 在“3”之前用红线标出了“{”,并表示它期待一个“}”。我怎样才能以整洁的格式输入数组?有 4 个维度会使它变得更复杂,我需要能够清楚地看到数据。

此外,我的数组中将有大量的零,本质上每个 arr[n][n] 都将为 0,所以我想知道是否可以使初始化更简单一些。

我的数组将是这种类型

int arr[7][7][15][2]

还是改用 struct 更好?

提前致谢!

最佳答案

您缺少一个 ,

对于三维数组

 int arr[2][3][4] = { 
                       { 
                          {1, 2, 1, 2}, {1, 2, 1, 4}, {1, 2, 4, 4} 
                       },
                       {  
                          {1, 1, 2, 4}, {1, 2, 1, 4}, {1, 2, 1, 4} 
                       } 
                    };

or int arr[2][3][4] = {1,2,1,2,1,2,1,4,1,2,4,4,1,1,2,4,1,2,1,4,1,2,1,4}; 

对于四维数组

int arr[2][3][4][2] = {
                        {
                          {
                            {1,2},{1,2},{1,2},{4,2}
                          },
                          {
                            {2, 4},{1, 4},{1, 4},{1,2}
                          },
                          {
                            {2, 4},{1, 4},{1, 4},{1,8}
                          }
                       },
                       {
                         {
                           {1,2},{1,2},{1,2},{4,2}
                         },
                         {
                           {2, 4},{1, 4},{1, 4},{1,2}
                         },
                         {
                           {2, 4},{1, 4},{1, 4},{1,2}
                         }
                      }
                    };

关于c - 如何在 C 中声明和初始化 4 维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19863417/

相关文章:

c - C 中数组索引自动赋值?

C:将文件复制到数组中

Java将两个数组转为一个二维数组

java - 将二维数组转换为组织表格外观

javascript - 如何循环多维数组并将字段映射到键

c - 最大子数组 : Divide and Conquer

c - c中的开关盒检查

c - 优化 for 循环加法

c++ - 在 OpenGL 中使用 for 循环创建数组

python - Numpy 3d 数组按最外层索引转换为 2d 数组