In questo tutorial impareremo a lavorare con gli array. Impareremo a dichiarare, inizializzare e accedere agli elementi dell'array nella programmazione C ++ con l'aiuto di esempi.
In C ++, un array è una variabile che può memorizzare più valori dello stesso tipo. Per esempio,
Supponiamo che una classe abbia 27 studenti e dobbiamo memorizzare i voti di tutti loro. Invece di creare 27 variabili separate, possiamo semplicemente creare un array:
 double grade(27);
In questo caso, il grado è un array che può contenere un massimo di 27 elementi di doubletipo.
In C ++, la dimensione e il tipo di array non possono essere modificati dopo la sua dichiarazione.
Dichiarazione di matrice C ++
 dataType arrayName(arraySize);
Per esempio,
 int x(6);
Qui,
- int- tipo di elemento da memorizzare
- x - nome dell'array
- 6- dimensione dell'array
Accedi agli elementi in C ++ Array
In C ++, ogni elemento in un array è associato a un numero. Il numero è noto come indice di matrice. Possiamo accedere agli elementi di un array usando quegli indici.
 // syntax to access array elements array(index);
Considera l'array x che abbiamo visto sopra.
 Elementi di un array in C ++
 Elementi di un array in C ++
Poche cose da ricordare:
- Gli indici dell'array iniziano con 0. Significato x (0) è il primo elemento memorizzato in index0.
- Se la dimensione di un array è n, l'ultimo elemento viene memorizzato in index(n-1). In questo esempio, x (5) è l'ultimo elemento.
- Gli elementi di un array hanno indirizzi consecutivi. Ad esempio, supponiamo che l'indirizzo iniziale di x(0)sia 2120d. Quindi, l'indirizzo del prossimo elementox(1)sarà 2124d, l'indirizzo dix(2)sarà 2128d e così via.
 Qui, la dimensione di ogni elemento viene aumentata di 4. Questo perché la dimensione diintè di 4 byte.
Inizializzazione dell'array C ++
In C ++, è possibile inizializzare un array durante la dichiarazione. Per esempio,
 // declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);  Elementi array C ++ e relativi dati
 Elementi array C ++ e relativi dati
Un altro metodo per inizializzare l'array durante la dichiarazione:
 // declare and initialize an array int x() = (19, 10, 8, 17, 9, 15);
Qui, non abbiamo menzionato la dimensione dell'array. In questi casi, il compilatore calcola automaticamente la dimensione.
Matrice C ++ con membri vuoti
In C ++, se un array ha una dimensione n, possiamo memorizzare fino a n numero di elementi nell'array. Tuttavia, cosa succederà se memorizziamo un numero inferiore a n di elementi.
Per esempio,
 // store only 3 elements in the array int x(6) = (19, 10, 8);
Qui, l'array x ha una dimensione di 6. Tuttavia, l'abbiamo inizializzato con solo 3 elementi.
In questi casi, il compilatore assegna valori casuali alle posizioni rimanenti. Spesso, questo valore casuale è semplicemente 0.
 Ai membri della matrice vuota viene assegnato automaticamente il valore 0
 Ai membri della matrice vuota viene assegnato automaticamente il valore 0 
Come inserire e stampare gli elementi dell'array?
 int mark(5) = (19, 10, 8, 17, 9) // change 4th element to 9 mark(3) = 9; // take input from the user // store the value at third position cin>> mark(2); // take input from the user // insert at ith position cin>> mark(i-1); // print first element of the array cout <> mark(i-1); 
Esempio 1: visualizzazione degli elementi dell'array
 #include using namespace std; int main() ( int numbers(5) = (7, 5, 6, 12, 35); cout << "The numbers are: "; // Printing array elements // using range based for loop for (const int &n : numbers) ( cout << n << " "; ) cout << "The numbers are: "; // Printing array elements // using traditional for loop for (int i = 0; i < 5; ++i) ( cout << numbers(i) << " "; ) return 0; )
Produzione
I numeri sono: 7 5 6 12 35 I numeri sono: 7 5 6 12 35
Qui, abbiamo usato un forciclo per iterare da i = 0a i = 4. In ogni iterazione, abbiamo stampato numbers(i).
Abbiamo nuovamente utilizzato un ciclo for basato su intervallo per stampare gli elementi dell'array. Per saperne di più su questo ciclo, controlla C ++ Ranged for Loop.
Nota: nel nostro ciclo basato sull'intervallo, abbiamo utilizzato il codice const int &nanziché int ncome dichiarazione dell'intervallo. Tuttavia, const int &nè più preferito perché:
- Usando int nsemplicemente copia gli elementi dell'array nella variabile n durante ogni iterazione. Questo non è efficiente in termini di memoria.
 & n, tuttavia, utilizza l'indirizzo di memoria degli elementi dell'array per accedere ai loro dati senza copiarli in una nuova variabile. Questo è efficiente in termini di memoria.
- Stiamo semplicemente stampando gli elementi dell'array, non modificandoli. Pertanto, usiamo in constmodo da non modificare accidentalmente i valori dell'array.
Esempio 2: prendere input dall'utente e archiviarli in un array
 #include using namespace std; int main() ( int numbers(5); cout << "Enter 5 numbers: " << endl; // store input from user to array for (int i = 0; i > numbers(i); ) cout << "The numbers are: "; // print array elements for (int n = 0; n < 5; ++n) ( cout << numbers(n) << " "; ) return 0; )
Produzione
Enter 5 numbers: 11 12 13 14 15 The numbers are: 11 12 13 14 15
Once again, we have used a for loop to iterate from i = 0 to i = 4. In each iteration, we took an input from the user and stored it in numbers(i).
Then, we used another for loop to print all the array elements.
Example 3: Display Sum and Average of Array Elements Using for Loop
 #include using namespace std; int main() ( // initialize an array without specifying size double numbers() = (7, 5, 6, 12, 35, 27); double sum = 0; double count = 0; double average; cout << "The numbers are: "; // print array elements // use of range-based for loop for (const double &n : numbers) ( cout << n << " "; // calculate the sum sum += n; // count the no. of array elements ++count; ) // print the sum cout << "Their Sum = " << sum << endl; // find the average average = sum / count; cout << "Their Average = " << average << endl; return 0; )
Output
The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333
In this program:
- We have initialized a double array named numbers but without specifying its size. We also declared three double variables sum, count, and average.
 Here,sum =0andcount = 0.
- Then we used a range based forloop to print the array elements. In each iteration of the loop, we add the current array element to sum.
- Aumentiamo anche il valore di count by 1in ogni iterazione, in modo da poter ottenere la dimensione dell'array entro la fine del ciclo for.
- Dopo aver stampato tutti gli elementi, stampiamo la somma e la media di tutti i numeri. La media dei numeri è data daaverage = sum / count;
Nota: abbiamo utilizzato un forloop con intervallo invece di un forloop normale .
Un forciclo normale richiede di specificare il numero di iterazioni, che è dato dalla dimensione dell'array.
Ma un forloop a distanza non richiede tali specifiche.
C ++ Array Out of Bounds
Se dichiariamo un array di dimensione 10, l'array conterrà elementi dall'indice 0 a 9.
Tuttavia, se proviamo ad accedere all'elemento con indice 10 o più di 10, risulterà in un comportamento indefinito.








