Array.
Dichiarazione di array - un array è una raccolta di variabili dello stesso tipo a cui si accede utilizzando un nome e un indice comuni, ad es. numero dell'elemento nell'array. In effetti, questo è un insieme di variabili che sono chiamate con lo stesso nome e hanno numeri personali. Per dichiarare un array è sufficiente specificare le parentesi quadre dopo il nome della variabile, il tipo di dato è qualsiasi. Puoi dire al compilatore la dimensione di un array in due modi: con un numero esplicito tra parentesi quadre, o quando lo dichiari, assegna immediatamente un valore a ciascuna cella, quindi il compilatore calcolerà automaticamente il loro numero. Considera un esempio di dichiarazione di un array in diversi modi:
- int myCells[5]; - specifica il numero di celle e il gioco è fatto, quindi puoi lavorare con loro.
- int myCells[] = {1, 2, 3, 4, 5}; - specificare il contenuto delle celle, il compilatore calcolerà il loro numero.
- int myCells[5] = {1, 2, 3, 4, 5}; - specifichiamo entrambi, il numero di celle in [] deve essere uguale a {} o maggiore.
- char site[12] = "Electron32"; - memorizzare i simboli.
Un punto importante: la dimensione dell'array globale deve essere impostata su una costante, ovvero un numero specifico, una costante const o una costante #define. Il fatto è che la dimensione dell'array globale deve essere nota prima dell'avvio del programma, perché è allocata dalla memoria e altre variabili globali si trovano accanto ad essa.
Dimensioni:
#define ARRAY1_SIZE 5
const byte array2_size = 7;
byte array3_size = 32; - impostazione errata.
Array:
int arr1[ARRAY1_SIZE];
int array2[array2_size];
int array3[array3_size]; - risulterà in un errore.
La dimensione dell'array locale (creato all'interno della funzione) può essere impostata su una variabile, poiché l'array locale viene allocato dalla memoria dinamica durante l'esecuzione del programma e può essere di qualsiasi dimensione:
void setup()
{
byte localArray_size = 5;
int arrayLocal[localArray_size];
}
Riferimento agli elementi dell'array - a un elemento dell'array si accede esattamente allo stesso modo, tra parentesi quadre. È importante ricordare che il conteggio in programmazione parte da zero e il primo elemento dell'array ha il numero 0 (zero):
myPins[5] = myByte[0];
- scrivi nella cella 3 dell'array myPins il valore dell'elemento 0 dell'array myByte
Array multidimensionale - sopra abbiamo considerato gli array unidimensionali, in cui gli elementi sono determinati semplicemente da un numero di serie. Puoi anche specificare array multidimensionali, in cui l'elemento avrà diversi numeri. Ad esempio un array bidimensionale è anche una array è anche una tabella, ogni elemento ha un numero di riga e di colonna. Tale matrice è definita come segue: tipo nome[righe][colonne].
byte myArray[5][7]; - matrice bidimensionale, 5 righe 7 colonne
byte myTable[2][3] = {{10, 11, 12}, {13, 14, 15}}; - matrice 2x3
byte myMatrix[3][4] = { - matrice 3x4
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
};
È molto importante ricordare che quando si dichiara un array con dati inseriti manualmente, è necessario specificare la dimensione del numero di celle nella dimensione di 1 in meno rispetto alla dimensione dell'array (per uno bidimensionale, è necessario specificare la dimensione di una delle dimensioni, per una tridimensionale, due, ecc.). Dopo l'ultimo membro dell'array, puoi inserire una virgola, questo non porterà a un errore (esempio di codice sopra). Nell'array bidimensionale myMatrix discusso sopra, l'elemento con indirizzo 0, 2 (riga 0 colonna 2) ha il valore 3. L'accesso a questo elemento, ad esempio, con l'obiettivo di sovrascrivere, sarà simile al seguente:
myMatrix[0][2] = 5; - cambia da 3 a 5, cella 0, 2.
Un array di stringhe (array di lettere) è molto utile, consentendo di memorizzare i nomi delle voci di menu o altre cose simili in modo ordinato. Tale array deve essere dichiarato utilizzando l'operatore di indirizzo *(asterisco):
const char *names[] = {
"Period", - cella
0
"Work", - cella
1
"Stop", - cella
2
};
Fare riferimento ai names[2] aiuterà, ad esempio, a visualizzare la scritta Stop sulla porta seriale o sul display.
Serial.println(names[2]); - invia la parola Stop alla porta seriale.
Gli elementi dell'array possono essere manipolati allo stesso modo delle variabili ordinarie. Un array può essere costituito da quasi tutti i tipi di dati: numeri interi, frazioni, un array di strutture... L'ambito si applica agli array allo stesso modo, perché un array è solo una variabile.