Array
從 YFRobotwiki
數組是一種可訪問的變量的集合。Arduino的數組是基於C語言的,因此這會變得很複雜,但使用簡單的數組是比較簡單的。
下面的方法都可以用來創建(聲明)數組。 int myInts[6]; int myPins[] = {2, 4, 8, 3, 6}; int mySensVals[6] = {2, 4, -8, 3, 2}; char message[6] = "hello"; 你聲明一個未初始化數組,例如myPins。 在myPins中,我們聲明了一個沒有明確大小的數組。編譯器將會計算元素的大小,並創建一個適當大小的數組。 當然,你也可以初始化數組的大小,例如在mySensVals中。請注意,當聲明一個char類型的數組時,你初始化的大小必須大於元素的個數,以容納所需的空字符。
數組是從零開始索引的,也就說,上面所提到的數組初始化,數組第一個元素是為索引0,因此: mySensVals [0] == 2,mySensVals [1] == 4, 依此類推。 這也意味着,在包含十個元素的數組中,索引九是最後一個元素。因此, int myArray[10] = {9,3,2,4,3,2,7,8,9,11}; // myArray[9]的数值为11 // myArray[10],该索引是无效的,它将会是任意的随机信息(内存地址) 出於這個原因,你在訪問數組應該小心。若訪問的數據超出數組的末尾(即索引數大於你聲明的數組的大小- 1),則將從其他內存中讀取數據。從這些地方讀取的數據,除了產生無效的數據外,沒有任何作用。向隨機存儲器中寫入數據絕對是一個壞主意,通常會導致不愉快的結果,如導致系統崩潰或程序故障。要排查這樣的錯誤是也是一件難事。 不同於Basic或JAVA,C語言編譯器不會檢查你訪問的數組是否大於你聲明的數組。
mySensVals [0] = 10; 從數組中訪問一個值: X = mySensVals [4]; 數組和循環
int i; for (i = 0; i < 5; i = i + 1) { Serial.println(myPins[i]); }
|
更多建議和問題歡迎反饋至 YFRobot論壇