📅  最后修改于: 2020-11-05 03:31:10             🧑  作者: Mango
阵列是同一类型的连续存储位置组。要引用数组中的特定位置或元素,我们指定数组的名称以及该特定元素在数组中的位置编号。
下图显示了一个名为C的整数数组,其中包含11个元素。通过给数组名称加上方括号([])中特定元素的位置编号,可以引用这些元素中的任何一个。位置编号更正式地称为下标或索引(此编号指定从数组开头开始的元素数)。第一个元素的下标为0(零),有时也称为零元素。
因此,数组C的元素为C [0](发音为“ C sub zero”),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
可以声明数组包含任何非引用数据类型的值。例如,字符串类型的阵列可以被用来存储。
本节提供了许多示例,这些示例演示了如何声明,初始化和操作数组。
该程序声明一个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 |
数组的元素也可以在数组声明中进行初始化,方法是在数组名称后加上等号和以逗号分隔的初始化列表。该程序使用初始化程序列表初始化具有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 |
通常,数组的元素表示要在计算中使用的一系列值。例如,如果数组中的元素代表考试成绩,那么教授可能希望对数组中的元素进行总计,并使用该总和来计算考试的全班平均成绩。该程序将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应该很清楚-
S.NO. | Concept & Description |
---|---|
1 | Passing Arrays to Functions
To pass an array argument to a function, specify the name of the array without any brackets. |
2 | Multi-Dimensional Arrays
Arrays with two dimensions (i.e., subscripts) often represent tables of values consisting of information arranged in rows and columns. |