当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Arduino array用法及代码示例


[数据类型]

说明

数组是使用索引号访问的变量的集合。使用 C++ 编程语言编写的数组 Arduino 草图可能很复杂,但使用简单的数组相对简单。

创建(声明)一个数组

以下所有方法都是创建(声明)数组的有效方法。

  int myInts[6];
  int myPins[] = {2, 4, 8, 3, 6};
  int mySensVals[5] = {2, 4, -8, 3, 2};
  char message[6] = "hello";

您可以声明一个数组,而无需像在 myInts 中那样对其进行初始化。
在 myPins 中,我们声明一个数组而不显式选择大小。编译器计算元素并创建适当大小的数组。
最后,您可以像在 mySensVals 中一样初始化和调整数组大小。请注意,在声明 char 类型的数组时,需要比初始化多一个元素来保存所需的空字符。

访问数组

数组是零索引的,也就是说,参考上面的数组初始化,数组的第一个元素在索引 0 处,因此

mySensVals[0] == 2, mySensVals[1] == 4, 等等。

这也意味着在一个有十个元素的数组中,索引九是最后一个元素。因此:

int myArray[10]={9, 3, 2, 4, 3, 2, 7, 8, 9, 11};
// myArray[9]    contains 11
// myArray[10]   is invalid and contains random information (other memory address)

出于这个原因,您在访问数组时应该小心。访问数组末尾(使用大于声明的数组大小 - 1 的索引号)是从用于其他目的的内存中读取。除了产生无效数据之外,从这些位置读取可能不会做太多事情。写入随机内存位置绝对是一个坏主意,并且通常会导致不愉快的结果,例如崩溃或程序故障。这也可能是一个难以追踪的错误。

与 BASIC 或 JAVA 不同,C++ 编译器不检查数组访问是否在您声明的数组大小的合法范围内。

为数组赋值:

mySensVals[0] = 10;

要从数组中检索值:

x = mySensVals[4];

数组和 FOR 循环

数组通常在 for 循环中进行操作,其中循环计数器用作每个数组元素的索引。例如,要通过串行端口打印数组的元素,您可以执行以下操作:

for (byte i = 0; i < 5; i = i + 1) {
  Serial.println(myPins[i]);
}

示例代码

有关演示数组使用的完整程序,请参见 (Tutorials) 中的 (Knight Rider example)。

相关用法


注:本文由纯净天空筛选整理自arduino.cc大神的英文原创作品 array。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。