访问双数组的最佳方法

时间:2015-07-15 15:46:25

标签: arrays

我在使用双数组时遇到了一些麻烦。以下代码不会编译,但我相信它应该显示我的问题:

static uns8 level6[2][8]  {              
  = {0, 0, 1, 2, 2, 3, 3, 0},
    {0, 1, 1, 2, 2, 3, 3, 0}};

int i, j;     /* Loop Index */
int level[8];                    

for (i = 0; i < 2; i++) 
    for (j = 0; j < 8; j++)
        if (TRUE) {
            level[][] = level6[][];   
        }
        else {
             level[i][] = level6[i][]; 
        }
    }
}

我的问题是如果变量为true,那么我想使用双数组{0, 1, 1, 2, 2, 3, 3, 0}的第二部分,否则使用第一部分{0, 0, 1, 2, 2, 3, 3, 0}

现在我仍然坚持如何实际编写代码。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

而不是

for (i = 0; i < 2; i++) 
 for (j = 0; j < 8; j++)
if (TRUE) {
    level[][] = level6[][];   
}
else {
     level[i][] = level6[i][]; 
}
你应该

for (j = 0; j < 8; j++){
   if (TRUE) {
      level[j] = level6[1][j];   
   }
   else {
      level[j] = level6[0][j]; 
   }
}

因为您只想将其中一个列表复制到级别中,所以您只需循环遍历该列表的长度,将该数字基于布尔值。