Arduino 數(shù)組
數(shù)組是連續(xù)的一組相同類型的內(nèi)存位置。要引用數(shù)組中的特定位置或元素,我們指定數(shù)組的名稱和數(shù)組中特定元素的位置編號。
下圖給出了一個名為C的整數(shù)數(shù)組,它包含11個元素。通過給出數(shù)組名稱,后面跟特定元素的位置編號:方括號([]),你可以引用這些元素中的任何一個。位置編號更正式地稱為下標(biāo)或索引(該數(shù)字指定從數(shù)組開始的元素數(shù))。第一個元素具有下標(biāo)0(零),有時稱為零元素。
因此,數(shù)組C的元素是C[0],C[1],C[2]等等。數(shù)組C中的最高下標(biāo)是10,其比數(shù)組中的元素數(shù)少1。數(shù)組名遵循與其他變量名相同的約定。
下標(biāo)必須是整數(shù)或整數(shù)表達式(使用任何整數(shù)類型)。如果程序使用表達式作為下標(biāo),則程序評估表達式以確定下標(biāo)。例如,如果我們假設(shè)變量a等于5,變量b等于6,那么語句將數(shù)組元素C[11]加2。
下標(biāo)數(shù)組名是一個左值,它可以在賦值的左側(cè)使用,就像非數(shù)組變量名一樣。
讓我們更仔細地檢查給定圖中的數(shù)組C。整個數(shù)組的名稱是C。它的11個元素被稱為C[0]到C[10]。C[0]的值為-45,C[1]的值為6,C[2]的值為0,C[7]的值為62,C[10]的值為78。
要打印數(shù)組C的前三個元素中包含的值的總和,我們將寫:
Serial.print (C[ 0 ] + C[ 1 ] + C[ 2 ] );
要將C[6]的值除以2并將結(jié)果賦值給變量x,我們將寫:
x = C[ 6 ] / 2;
聲明數(shù)組
數(shù)組占用內(nèi)存中的空間。要指定元素的類型和數(shù)組所需的元素數(shù)量,請使用以下形式的聲明:
type arrayName [ arraySize ] ;
編譯器保留適當(dāng)?shù)膬?nèi)存量(回想一下,保留內(nèi)存的聲明更恰當(dāng)?shù)乇环Q為定義)。arraySize必須是大于零的整數(shù)常量。例如,要告訴編譯器為整數(shù)數(shù)組C保留11個元素,請使用聲明:
int C[ 12 ]; // C is an array of 12 integers
數(shù)組可以聲明為包含任何非引用數(shù)據(jù)類型的值。例如,可以使用字符串類型的數(shù)組來存儲字符串。
使用數(shù)組的示例
本節(jié)提供了許多示例來演示如何聲明,初始化以及操作數(shù)組。
示例1:聲明數(shù)組并使用循環(huán)來初始化數(shù)組的元素
程序聲明一個10元素的整數(shù)數(shù)組n。使用For語句將數(shù)組元素初始化為零。與其他自動變量一樣,自動數(shù)組不會隱式初始化為零。
示例
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:使用初始化器列表在聲明中初始化數(shù)組
數(shù)組元素也可以在數(shù)組聲明中初始化,通過在數(shù)組名后面跟隨等號和一個用大括號及逗號分隔的初始化器列表。
示例
// 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:對數(shù)組的元素求和
通常,數(shù)組的元素表示要在計算中使用的一系列值。例如,如果數(shù)組的元素表示考試成績,教授可能希望將數(shù)組的元素進行加總,并使用該總和來計算班級考試的平均成績。程序?qū)?0元素整數(shù)數(shù)組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) ;
}
結(jié)果- 它會產(chǎn)生以下結(jié)果:
Total of array elements: 849
數(shù)組對Arduino很重要,應(yīng)該需要更多的關(guān)注。以下是學(xué)習(xí)Arduino應(yīng)該清楚的與數(shù)組相關(guān)的重要概念:
序號 | 概念和描述 |
---|---|
1 | 將數(shù)組傳遞給函數(shù)要將數(shù)組參數(shù)傳遞給函數(shù),請指定沒有任何括號的數(shù)組的名稱。 |
2 | 多維數(shù)組具有兩個維度(即下標(biāo))的數(shù)組通常表示由排列在行和列中的信息組成的值的表格。 |
審核編輯:湯梓紅
-
數(shù)組
+關(guān)注
關(guān)注
1文章
417瀏覽量
26001 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187594
原文標(biāo)題:Arduino 數(shù)組
文章出處:【微信號:創(chuàng)客少年,微信公眾號:創(chuàng)客少年】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論