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 double
tipo.
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.
![](https://cdn.wiki-base.com/7012201/c_arrays_with_examples.png.webp)
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);
![](https://cdn.wiki-base.com/7012201/c_arrays_with_examples_2.png.webp)
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
.
![](https://cdn.wiki-base.com/7012201/c_arrays_with_examples_3.png.webp)
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 for
ciclo per iterare da i = 0
a 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 &n
anziché int n
come dichiarazione dell'intervallo. Tuttavia, const int &n
è più preferito perché:
- Usando
int n
semplicemente 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
const
modo 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 =0
andcount = 0
. - Then we used a range based
for
loop 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
1
in 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 da
average = sum / count;
Nota: abbiamo utilizzato un for
loop con intervallo invece di un for
loop normale .
Un for
ciclo normale richiede di specificare il numero di iterazioni, che è dato dalla dimensione dell'array.
Ma un for
loop 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.