Arduino 數組
數組是連續的一組相同類型的內存位置。要引用數組中的特定位置或元素,我們指定數組的名稱和數組中特定元素的位置編號。
下圖給出了一個名為C的整數數組,它包含11個元素。通過給出數組名稱,后面跟特定元素的位置編號:方括號([]),你可以引用這些元素中的任何一個。位置編號更正式地稱為下標或索引(該數字指定從數組開始的元素數)。第一個元素具有下標0(零),有時稱為零元素。
因此,數組C的元素是C[0],C[1],C[2]等等。數組C中的最高下標是10,其比數組中的元素數少1。數組名遵循與其他變量名相同的約定。
下標必須是整數或整數表達式(使用任何整數類型)。如果程序使用表達式作為下標,則程序評估表達式以確定下標。例如,如果我們假設變量a等于5,變量b等于6,那么語句將數組元素C[11]加2。
下標數組名是一個左值,它可以在賦值的左側使用,就像非數組變量名一樣。
讓我們更仔細地檢查給定圖中的數組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。使用For語句將數組元素初始化為零。與其他自動變量一樣,自動數組不會隱式初始化為零。
示例
int n[ 10 ] ; // n is an array of 10 integers
void setup () {
Serial.begin(9600); //串口初始化
}
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 (‘ ’) ; } for ( int j = 0; j < 10; ++j ){ // output each array element's value Serial.print (n[j]) ; Serial.print (‘ ’) ;
}
}
示例2:使用初始化器列表在聲明中初始化數組
數組元素也可以在數組聲明中初始化,通過在數組名后面跟隨等號和一個用大括號及逗號分隔的初始化器列表。
示例
// n is an array of 10 integers
int n[ 10 ] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 } ;
void setup () {
Serial.begin(9600); //串口初始化
}
void loop () {
for ( int i = 0; i < 10; ++i ){ // initialize elements of array n to 0 Serial.print (i) ; Serial.print (‘ ’) ; } for ( int j = 0; j < 10; ++j ){ // output each array element's value Serial.print (n[j]) ; Serial.print (‘ ’) ;
}
}
示例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 () {
Serial.begin(9600); //串口初始化
}
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應該清楚的與數組相關的重要概念:
序號 | 概念和描述 |
---|---|
1 | 將數組傳遞給函數要將數組參數傳遞給函數,請指定沒有任何括號的數組的名稱。 |
2 | 多維數組具有兩個維度(即下標)的數組通常表示由排列在行和列中的信息組成的值的表格。 |
審核編輯:湯梓紅
-
數組
+關注
關注
1文章
416瀏覽量
25913 -
Arduino
+關注
關注
187文章
6464瀏覽量
186677
原文標題:Arduino 數組
文章出處:【微信號:創客少年,微信公眾號:創客少年】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論