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

use*_*122 6 c arrays multidimensional-array

我对编程比较陌生,我需要输入一个4维数组,我几乎无法绕过它.那么,让我们从一个简单的三维数组开始,每个元素都是2个元素:

int arr[2][2][2] = 
{
    {
        {1, 2}
        {3, 4}    //redline on "{"
    }
    {             //redline on "{"
        {5, 6}
        {7, 8}
    }
};
Run Code Online (Sandbox Code Playgroud)

VS-2012在"3"之前勾选"{",并表示期待"}".我怎样才能以整洁的格式输入数组?有4个维度会使它更复杂,我需要能够清楚地看到数据.

此外,我将在我的数组中有大量的零,在每个arr [n] [n]将为0的情况下,所以我想知道我是否可以使初始化更简单一些.

我的数组将是该类型

int arr[7][7][15][2]
Run Code Online (Sandbox Code Playgroud)

或者我最好使用struct而不是?

提前致谢!

nik*_*iko 5

你错过了一个,.

对于三维数组

 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}; 
Run Code Online (Sandbox Code Playgroud)

对于四维数组

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}
                         }
                      }
                    };
Run Code Online (Sandbox Code Playgroud)

  • 这不是真正的"`,`运算符".这只是一个逗号,是初始化程序的语法元素.与`,`运算符没有关系. (2认同)