Arduino 数组


声明数组

要声明一个数组,请遵循以下语法:

语法

type array_name[array_size];

示例

char buf[500];
int new_array[200];

访问数组元素

数组元素编号从 0 开始。可以通过在数组名称后使用方括号指定元素的索引来访问元素。例如:

int second_element = new_array[1];

获取数组长度

可以使用 **sizeof()** 函数访问数组的长度。

例如:

int buf_len = sizeof(buf);

请注意,**sizeof()** 函数返回的是字节数,而不是元素个数。如果你有一个 int 数组,并且在你的开发板上 **int** 表示为两个字节,那么这个函数将返回你数组长度的两倍。这可以通过以下方法避免:

int buf_len = sizeof(buf)/sizeof(buf[0]);

填充数组

你可以在声明阶段填充数组。这将把数组的所有元素设置为你设置的值。

例如:

int new_array[200] = 0;

将把所有 200 个元素设置为 0。

对于字符数组,你也可以按如下方式填充数组:

char buf[50] = "Hello World";

这将把数组的第一个元素设置为“H”,下一个元素设置为“e”,依此类推。“Hello World”之后的元素都将设置为 0。你可以通过以下程序验证这一点:

示例

char buf[50] = "Hello World";
void setup() {
   Serial.begin(9600);
}
void loop() {
   // put your main code here, to run repeatedly:
   for(int i = 0; i< sizeof(buf); i++){
      Serial.println(buf[i], DEC);
      delay(100);
   }
}

输出

此程序在串口监视器的输出如下所示:

正如你所看到的,“d”(ASCII 码 100)之后的元素都为 0。你可以使用以下 ASCII 表来验证输出:https://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html

当然,也可以使用索引分别填充数组的各个元素。例如:

buf[2] = 'a';

等等。

更新于:2021年4月2日

5K+ 次浏览

启动您的 职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.