代码之家  ›  专栏  ›  技术社区  ›  Gurjot kaur

如何在C语言中定义二维数组

  •  0
  • Gurjot kaur  · 技术社区  · 7 年前

    我要做一个二维数组来存储表的信息

    我在下面找不到语法错误

    int majorPositions[][]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};
    

    另外,如何输入最后一列的详细信息,因为它是一个字符,而不是整数

    2 回复  |  直到 7 年前
        1
  •  2
  •   gxexx    7 年前

    必须设置数组的大小,如下所示:

    int majorPositions[][3]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};
    

    int majorPositions[4][3]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};
    

        2
  •  1
  •   Masahiro Wada    7 年前

    必须指定内部数组的大小,如下所示。

    int majorPositions[][3]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};
    

    而且,我认为你可以把代码分为1和0。

        3
  •  1
  •   user694733    7 年前

    我会用类似的东西(就像上面提到的那样)

    #include <stdbool.h>
    
    typedef struct
    {
       int x;
       int y;
       int z;
       bool Tool;
    } TableEntry_t;
    
    TableEntry_t majorPositions[4];
    

        4
  •  0
  •   Lundin    7 年前

    您需要显式键入内部维度大小。为了简化一切,可以考虑利用这样一个事实:C语言中的布尔值只是美化的整数。你可以用 int 作为 bool 反之亦然。

    #include <stdbool.h>
    
    int majorPositions[][4]=
    {
      {  0,  90, -90, false },
      { 90,  15,  90, true  },
      {-45, -30,  30, true  },
      {  0,  60,   0, false },
    };
    

    可以在编译时使用 sizeof(majorPositions)/sizeof(majorPositions[0]) (在本例中为4)。

    或者使用 struct 如其他答案所建议的。它可能给出效率较低的代码,也可能不给出效率较低的代码。

        5
  •  0
  •   laddu    7 年前

    int majorPositions[][3]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};