什么是“数组数组”? -Arduino的

时间:2019-04-29 23:40:23

标签: arduino

我正在跟踪有关如何制作包含4x4小键盘的电路的教程,您可能会说,多次出现某个“矢量数组”的原因是我不知道它的含义。

我搜索了周围,但没有发现任何东西。甚至在Arduino参考上也是如此。

这是视频(https://www.youtube.com/watch?v=GyprsoB887Y&t=437s)中的代码示例。


// "rows" and "cols" being defined as 4 before, so the line is essentially equal to char keys[4][4]

char keys[rows][cols] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', '0'}
};

所以,正在发生的事情,具体地说,似乎是一个数组数组。我知道为什么必须这样做,它不能是分配给多个数组的一个变量,而必须是一个包含它们的包含数组。但是我确实看到它是如何被4声明为4的,但是它不应该被4声明为1吗?另外,keys[rows][columns]是什么意思?

不是吗?


char keys[] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', '0'} 
};

为什么不呢?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  

不是吗?

char keys[] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', '0'} 
};
  

为什么不呢?

不是因为char keys[]指定了类型为char的数组。通过上面的语句,您正在将每个元素初始化为本身为char类型的数组。

如果您想将其指定为char类型的数组,则正确的方法是:

char keys[] = {
  '1', '2', '3', 'A',
  '4', '5', '6', 'B',
  '7', '8', '9', 'C',
  '*', '0', '#', '0' 
};