📅  最后修改于: 2020-12-27 09:34:09             🧑  作者: Mango
数组被定义为允许将多个值以简单方式分组在一起的数据结构。这是一种易于访问的方法。
数组通常是根据数据类型(例如integer,reals, 字符和boolean)构建的。它指的是相似数据元素的有限数量(n)的命名列表。
连续数字集通常代表数组中的元素,它们是0、1、2、3、4、5、6,.. n。
例如,如果一个由5个元素组成的数组的名称为AR,则将如下所示引用这些元素:
AR[0], AR[1], AR[2], AR[3], and AR[4]
Arduino中的数组使用整数数据类型声明。
它也定义为变量的集合,它是通过索引号获取的。
该数组表示为:
我们可以根据自己的选择指定任何名称。数组名称是元素的单独名称。
可以在Arduino中声明数组的不同方法,如下所示:
例如,
int myarray[ ] = { 1, 4, 6, 7 } ;
例如,
int myarray[ 5];
int myarray[ 8] = { 1, 4, 7, 9, 3, 2 , 4};
阵列的特征
例如,
int myarray[ 4 ] = { 1, -3, 4};
char myarray[ 6] = " Hi " ;
int myarray [5] = {1,4,6,7};可以写成int myarray [8] = {1,4,6,7};
但是,不能将其写为int myarray [2] = {1,4,6,7};
让我们看一个例子。
考虑一下Arduino IDE中的以下代码。
让我们将数组指定为:int myarray [5] = {1,4,6,7};
该代码将成功编译,如下所示:
现在,如果我们将数组指定为:int myarray [2] = {1,4,6,7};
该代码将显示错误,如下所示:
例如,
让我们将数组指定为char abc [8] =“ Arduino”;
Arduino中的数组的索引为零。这意味着该数组的第一个元素的索引为0。例如,
myvalue[0] = = 1, myvalue[1] = = 2, . . . .
范例1:
让我们以6个元素组成的数组(ARarduino )。数组的元素如下所示:
ARarduino [0],ARarduino [1],ARarduino [2],ARarduino [3],ARarduino [4],
和ARarduino [5]。
数组的最后一个元素是ARarduino [5]。
数组的最后一个元素为n-1,其中n是声明的数组大小。
考虑下面的代码。
ARarduino[6] = { 1, 4, 7, 6, 11, 15};
// ARarduino[4] contains value 11
// ARarduino[5] contains value 15
//ARarduino[6] is invalid
让我们了解数组上进行的操作。
示例1:求和
我们还可以计算数组中元素的总和。
让我们考虑一个包含4个元素的数组(AR)。元素是: AR [0],AR [1],AR [2]和AR [3]。
要计算前两个元素的总和:
Serial.print( AR[0] + AR[1] );
将打印分配给数组中元素的值的总和。
示例2:划分
我们将分配给元素AR [4]的值除以2。结果值将分配给变量“ z”。考虑下面的代码:
z = AR[4] / 2;
Serial.println ( x );
结果将被打印。
在将值分配给数组时,我们需要小心。索引号大于数组的大小可能会产生无效的数据。此类数据将保存到随机存储器位置,这可能会导致程序故障或难以发现的错误。
注意:C++不会检查声明的数组的合法绑定大小,而JAVA和BASIC会检查。
将值分配给数组的语法指定为:
myArray[0] = 5;
// we can assign any value depending on the requirements.
从数组中检索值的语法指定为:
项目示例:我们还将在基本项目中讨论使用阵列点亮LED的项目->使用阵列闪烁各种LED 。
我们还可以在循环内使用数组。对于数组的每个元素,循环计数器都充当该数组的索引元素。
让我们看一个例子。
在此示例中,将打印串行端口上的元素。
代码如下:
for (byte i = 0; i < 6; i = i + +) // here, i++ can also be written as i+1
{
Serial.println(myArray[i]);
}
让我们通过一些例子来了解数组。
考虑下面的代码:
const int sizeOFarray = 5; // constant variable indicating size of array
int b[sizeOFarray] = {10, 20, 30, 40, 50}; // five values initialized to five elements of an array
int sum = 0;
void setup ()
{
Serial.begin(9600);
}
void loop ()
{
// sum of array b
for ( int i = 0; i < sizeOFarray; i++ )
sum += b[ i ]; // here, sum = sum + b[i]
Serial.print('Sum of total elements of an array:') ;
Serial.print(sum) ; // It will print the sum of all elements of an array
}
输出量
Sum of total elements of an array: 150
在上面的代码中,我们使用了const变量。编译器将内存保留在Arduino Variables 。
考虑下面的代码:
const int sizeOFarray = 5; // constant variable indicating size of array
int b[sizeOFarray] = {10, 30, 40, 55, 65}; // five values initialized to five elements of an array
int sum = 0;
int average = 0;
void setup ()
{
Serial.begin(9600);
}
void loop () {
// sum of array b
for ( int i = 0; i < sizeOFarray; i++ )
sum += b[ i ]; // here, sum = sum + b[i]
average = sum/5;
Serial.print('Average of the elements of the array:') ;
Serial.println(average) ; // It will print the average of all elements of an array
// there are 5 elements. So, the average will be divided by 5.
}
输出量
Average of the elements of the array:
40