我该如何创建一个变量数组,比如。。。。。
int incColor, c0, c1, c2, c3, c4, c5 = 0;
int circleArray[11][9] = { {c5, c5, c5, c5, c5, c5, c5, c5, c5},
{c4, c4, c4, c4, c4, c4, c4, c4, c4},
{c4, c3, c3, c3, c3, c3, c3, c3, c4},
{c4, c3, c2, c2, c2, c2, c2, c3, c4},
{c4, c3, c2, c1, c1, c1, c2, c3, c4},
{c4, c3, c2, c1, c0, c1, c2, c3, c4},
{c4, c3, c2, c1, c1, c1, c2, c3, c4},
{c4, c3, c2, c2, c2, c2, c2, c3, c4},
{c4, c3, c3, c3, c3, c3, c3, c3, c4},
{c4, c4, c4, c4, c4, c4, c4, c4, c4},
{c5, c5, c5, c5, c5, c5, c5, c5, c5} };
这样以后在代码中我就可以这样称呼他们。。。
void circle(uint16_t mode)
{
switch (mode)
{
case 0:
c0 = random(255);
break;
case 1:
c0 = incColor;
incColor++;
break;
}
for (int x = 0; x < 11; x++)
{
for (int y = 0; y < 9; y++)
{
strip.setPixelColor(x, y, Wheel(circleArray[x][y]));
}
}
c5 = c4;
c4 = c3;
c3 = c2;
c2 = c1;
c1 = c0;
}
上面的代码不起作用,我测试了c5和circleArray[0][0]
c5 = 34
circleArray[0][0] = 0
circleArray[0][0]应该与c5相同,但由于某些原因,该值没有设置。。。
有人知道我在这里做错了什么吗?
~~~~~~~~~~~~~~~~~编辑~~~~~~~~~~~~~~~~~
固定的!!感谢@sj0h帮我找到了一个更简单的解决方案,现在我可以把这个。。。
int c[6] = {0, 0, 0, 0, 0, 0};
int circleArray[11][9] = { {5, 5, 5, 5, 5, 5, 5, 5, 5},
{4, 4, 4, 4, 4, 4, 4, 4, 4},
{4, 3, 3, 3, 3, 3, 3, 3, 4},
{4, 3, 2, 2, 2, 2, 2, 3, 4},
{4, 3, 2, 1, 1, 1, 2, 3, 4},
{4, 3, 2, 1, 0, 1, 2, 3, 4},
{4, 3, 2, 1, 1, 1, 2, 3, 4},
{4, 3, 2, 2, 2, 2, 2, 3, 4},
{4, 3, 3, 3, 3, 3, 3, 3, 4},
{4, 4, 4, 4, 4, 4, 4, 4, 4},
{5, 5, 5, 5, 5, 5, 5, 5, 5} };
void circle(uint16_t mode)
{
switch (mode)
{
case 0:
c[0] = random(255);
break;
case 1:
c[0] = incColor;
incColor++;
break;
}
for (int x = 0; x < 11; x++)
{
for (int y = 0; y < 9; y++)
{
strip.setPixelColor(x, y, Wheel(c[circleArray[x][y]]));
}
}
c[5] = c[4];
c[4] = c[3];
c[3] = c[2];
c[2] = c[1];
c[1] = c[0];
}
在现实生活中的应用。。。。
最佳答案
推荐人可以做你想做的事:
int &circleArray[11][9] = ......
这将使circleArray成为一个引用数组,而不是复制的值。
编辑:标准不支持以上内容,并且支持依赖于编译器。
如果使用指针,则
int *circleArray[11][9] = {{&c5, &c5, .....
然后将所有circleArray访问更改为*circleArray[x][y],而不是circleArray[x][y]。
另一种可能更通用的方法是将颜色数组索引保持在circleArray中:
int incColor;
int cn[6] = {0,0,0,0,0,0};
int circleArray[11][9] = { {5,5,5,5,5,5,5,5,5},
{4,4 .....
然后c0将变成c[0],您将访问数组值,如下所示
cn[circleArray[x][y]]
您也可以将circleArray uint8设为节省一些空间,因为所有条目都可以放在一个字节内。