當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Arduino array用法及代碼示例

[數據類型]

說明

數組是使用索引號訪問的變量的集合。使用 C++ 編程語言編寫的數組 Arduino 草圖可能很複雜,但使用簡單的數組相對簡單。

創建(聲明)一個數組

以下所有方法都是創建(聲明)數組的有效方法。

  int myInts[6];
  int myPins[] = {2, 4, 8, 3, 6};
  int mySensVals[5] = {2, 4, -8, 3, 2};
  char message[6] = "hello";

您可以聲明一個數組,而無需像在 myInts 中那樣對其進行初始化。
在 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]    contains 11
// myArray[10]   is invalid and contains random information (other memory address)

出於這個原因,您在訪問數組時應該小心。訪問數組末尾(使用大於聲明的數組大小 - 1 的索引號)是從用於其他目的的內存中讀取。除了產生無效數據之外,從這些位置讀取可能不會做太多事情。寫入隨機內存位置絕對是一個壞主意,並且通常會導致不愉快的結果,例如崩潰或程序故障。這也可能是一個難以追蹤的錯誤。

與 BASIC 或 JAVA 不同,C++ 編譯器不檢查數組訪問是否在您聲明的數組大小的合法範圍內。

為數組賦值:

mySensVals[0] = 10;

要從數組中檢索值:

x = mySensVals[4];

數組和 FOR 循環

數組通常在 for 循環中進行操作,其中循環計數器用作每個數組元素的索引。例如,要通過串行端口打印數組的元素,您可以執行以下操作:

for (byte i = 0; i < 5; i = i + 1) {
  Serial.println(myPins[i]);
}

示例代碼

有關演示數組使用的完整程序,請參見 (Tutorials) 中的 (Knight Rider example)。

相關用法


注:本文由純淨天空篩選整理自arduino.cc大神的英文原創作品 array。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。