- Arduino 教程
- Arduino - 首页
- Arduino - 概述
- Arduino - 开发板说明
- Arduino - 安装
- Arduino - 程序结构
- Arduino - 数据类型
- Arduino - 变量与常量
- Arduino - 运算符
- Arduino - 控制语句
- Arduino - 循环
- Arduino - 函数
- Arduino - 字符串
- Arduino - 字符串对象
- Arduino - 时间
- Arduino - 数组
- Arduino 函数库
- Arduino - I/O 函数
- Arduino - 高级 I/O 函数
- Arduino - 字符函数
- Arduino - 数学库
- Arduino - 三角函数
- Arduino 高级应用
- Arduino - Due 和 Zero
- Arduino - 脉宽调制 (PWM)
- Arduino - 随机数
- Arduino - 中断
- Arduino - 通信
- Arduino - 集成电路 (I2C)
- Arduino - 串行外设接口 (SPI)
- Arduino 项目
- Arduino - LED 闪烁
- Arduino - LED 渐变
- Arduino - 读取模拟电压
- Arduino - LED 条形图
- Arduino - 键盘注销
- Arduino - 键盘消息
- Arduino - 鼠标按键控制
- Arduino - 键盘串口
- Arduino 传感器
- Arduino - 湿度传感器
- Arduino - 温度传感器
- Arduino - 水位检测/传感器
- Arduino - PIR 传感器
- Arduino - 超声波传感器
- Arduino - 连接开关
- 电机控制
- Arduino - 直流电机
- Arduino - 伺服电机
- Arduino - 步进电机
- Arduino 和声音
- Arduino - 音调库
- Arduino - 无线通信
- Arduino - 网络通信
- Arduino 有用资源
- Arduino - 快速指南
- Arduino - 有用资源
- Arduino - 讨论
Arduino - 数组
数组是内存中连续的一组相同类型的数据。要引用数组中的特定位置或元素,需要指定数组名称和该元素的位置编号。
下图显示了一个名为 C 的整数数组,它包含 11 个元素。您可以通过给出数组名称,后跟方括号 ([]) 中的特定元素位置编号来引用任何一个元素。位置编号更正式地称为下标或索引(此数字指定从数组开头算起的元素个数)。第一个元素的下标为 0(零),有时称为零元素。
因此,数组 C 的元素为 C[0](读作“C 下标零”)、C[1]、C[2] 等等。数组 C 中的最高下标为 10,比数组中的元素个数 (11) 少 1。数组名称遵循与其他变量名称相同的约定。
下标必须是整数或整数表达式(使用任何整型)。如果程序使用表达式作为下标,则程序会计算表达式以确定下标。例如,如果我们假设变量 a 等于 5,变量 b 等于 6,则语句将 2 加到数组元素 C[11] 中。
带下标的数组名称是左值,它可以用于赋值语句的左侧,就像非数组变量名称一样。
让我们更仔细地检查给定图形中的数组 C。整个数组的名称为 C。它的 11 个元素被称为 C[0] 到 C[10]。C[0] 的值为 -45,C[1] 的值为 6,C[2] 的值为 0,C[7] 的值为 62,C[10] 的值为 78。
要打印数组 C 的前三个元素中包含的值的总和,我们将编写:
Serial.print (C[ 0 ] + C[ 1 ] + C[ 2 ] );
要将 C[6] 的值除以 2 并将结果赋值给变量 x,我们将编写:
x = C[ 6 ] / 2;
声明数组
数组占用内存空间。要指定数组元素的类型和所需的元素个数,请使用以下形式的声明:
type arrayName [ arraySize ] ;
编译器将保留适当数量的内存。(回想一下,保留内存的声明更准确地称为定义)。arraySize 必须大于零的整数常量。例如,要告诉编译器为整数数组 C 保留 11 个元素,请使用以下声明:
int C[ 12 ]; // C is an array of 12 integers
数组可以声明为包含任何非引用数据类型的值。例如,字符串类型的数组可以用来存储字符串。
使用数组的示例
本节提供了许多示例,演示如何声明、初始化和操作数组。
示例 1:声明数组并使用循环初始化数组的元素
程序声明了一个包含 10 个元素的整数数组 n。第 a-b 行使用 For 语句将数组元素初始化为零。与其他自动变量一样,自动数组不会隐式初始化为零。第一个输出语句(第 c 行)显示后续 for 语句(第 d-e 行)中打印的列的列标题,该语句以表格格式打印数组。
示例
int n[ 10 ] ; // n is an array of 10 integers void setup () { } void loop () { for ( int i = 0; i < 10; ++i ) // initialize elements of array n to 0 { n[ i ] = 0; // set element at location i to 0 Serial.print (i) ; Serial.print (‘\r’) ; } for ( int j = 0; j < 10; ++j ) // output each array element's value { Serial.print (n[j]) ; Serial.print (‘\r’) ; } }
结果 - 它将产生以下结果:
Element Value 0
1
2
3
4
5
6
7
8
9
0
0
0
0
0
0
0
0
0
0
示例 2:在声明中使用初始化列表初始化数组
数组的元素也可以在数组声明中通过在数组名称后加上等号和用大括号括起来的逗号分隔的初始化列表来初始化。程序使用初始化列表用 10 个值初始化整数数组(第 a 行),并以表格格式打印数组(第 b-c 行)。
示例
// n is an array of 10 integers int n[ 10 ] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 } ; void setup () { } void loop () { for ( int i = 0; i < 10; ++i ) { Serial.print (i) ; Serial.print (‘\r’) ; } for ( int j = 0; j < 10; ++j ) // output each array element's value { Serial.print (n[j]) ; Serial.print (‘\r’) ; } }
结果 - 它将产生以下结果:
Element Value 0
1
2
3
4
5
6
7
8
9
32
27
64
18
95
14
90
70
60
37
示例 3:对数组元素求和
通常,数组的元素代表一系列要用于计算的值。例如,如果数组的元素代表考试成绩,教授可能希望对数组的元素求和,并使用该和来计算考试的班级平均分。程序对包含在 10 个元素的整数数组 a 中的值求和。
示例
const int arraySize = 10; // constant variable indicating size of array int a[ arraySize ] = { 87, 68, 94, 100, 83, 78, 85, 91, 76, 87 }; int total = 0; void setup () { } void loop () { // sum contents of array a for ( int i = 0; i < arraySize; ++i ) total += a[ i ]; Serial.print (“Total of array elements : ”) ; Serial.print(total) ; }
结果 - 它将产生以下结果:
Total of array elements: 849
数组对于 Arduino 非常重要,需要更多关注。Arduino 应该清楚以下与数组相关的概念: