Array in formato C++: Dichiarazione, inizializzazione e puntatori (esempi)
โก Riepilogo intelligente
Una matrice in C++ Un array รจ una raccolta di elementi dello stesso tipo di dati memorizzati in posizioni di memoria contigue. Qui imparerai a dichiarare, inizializzare e accedere agli array, i tipi di array e i loro vantaggi e svantaggi.

Che cos'รจ un array?
Un array รจ una struttura dati che memorizza in sequenza un elemento dello stesso tipo di dati. UN C++ l'array ha una dimensione fissa.
Puoi vedere un array come una raccolta di variabili con un tipo di dati simile. Invece di dichiarare ciascuna variabile e assegnarle un valore individualmente, puoi dichiarare una variabile (l'array) e aggiungervi i valori delle varie variabili. Ogni valore aggiunto all'array รจ identificato da un indice.
Perchรฉ abbiamo bisogno di array?
Array sono molto importanti in qualsiasi linguaggio di programmazione. Forniscono un modo piรน conveniente per archiviare insieme variabili o una raccolta di dati di tipo simile invece di archiviarli separatamente. Si accederร a ciascun valore dell'array separatamente.
Dichiarare un array in C++
Dichiarazione di array in C++ comporta l'indicazione del tipo e del numero di elementi che devono essere memorizzati dall'array. Sintassi:
type array-Name [ array-Size ];
Regole per dichiarare un array a dimensione singola in C++.
- Tipo: Il tipo รจ il tipo di elementi da archiviare nell'array e deve essere valido C++ tipo di dati.
- Nome array: L'array-Name รจ il nome da assegnare all'array.
- Dimensioni dell'array: L'array-Size รจ il numero di elementi da memorizzare nell'array. Deve essere un numero intero e maggiore di 0.
Ad esempio, puoi creare un array denominato age e memorizzare l'etร di 5 studenti come segue:
int age[5];
L'etร dell'array memorizzerร 5 numeri interi che rappresentano le etร di diversi studenti.
Inizializzazione dell'array
L'inizializzazione dell'array รจ il processo di assegnazione/memorizzazione di elementi a un array. L'inizializzazione puรฒ essere eseguita in una singola istruzione o una per una. Si noti che il primo elemento di un array viene archiviato nell'indice 0, mentre l'ultimo elemento viene archiviato nell'indice n-1, dove n รจ il numero totale di elementi nell'array.
Nel caso dell'array age, il primo elemento verrร archiviato nell'indice 0, mentre l'ultimo elemento verrร archiviato nell'indice 4.
Usiamo l'array age per dimostrare come puรฒ essere eseguita l'inizializzazione dell'array:
int age[5] = {19, 18, 21, 20, 17};
Il numero totale di elementi all'interno di { } non puรฒ superare il valore indicato all'interno di [ ]. L'elemento 19 รจ nell'indice 0, 18 nell'indice 1, 21 nell'indice 2, 20 nell'indice 3 e 17 nell'indice 4. Se non si indica il numero di elementi da memorizzare nell'array entro [ ], l'array sarร abbastanza grande da contenere solo gli elementi aggiunti all'interno di { }. Per esempio:
int age[] = {19, 18, 21, 20, 17};
L'istruzione precedente creerร esattamente lo stesso array di quello precedente. Puoi anche assegnare un elemento a un array usando il suo indice. Per esempio:
age[3] = 20;
L'istruzione precedente memorizzerร il valore 20 nell'indice 3 dell'array denominato age. Ciรฒ significa che 20 saranno i 4th elemento della matrice.
Tipi di array
Ci sono due tipi di C++ matrici:
- Array unidimensionale
- Array multidimensionale
- Puntatore a un array
Matrice unidimensionale
Si tratta di un array in cui gli elementi di dati sono disposti linearmente in una sola dimensione. Viene comunemente chiamato array 1-D. Sintassi:
datatype array-name[size];
- Il nome-array รจ il nome dell'array.
- La dimensione รจ il numero di elementi da memorizzare nell'array.
Per esempio:
#include <iostream> using namespace std; int main() { int age[5] = { 19, 18, 21, 20, 17 }; for (int x = 0; x < 5; x++) { cout <<age[x]<<"\n"; } }
Produzione:
Ecco uno screenshot del codice:
Code Spiegazione:
- Includere il file di intestazione iostream nel nostro codice. Ci permetterร di leggere e scrivere sulla console.
- Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
- Chiamando la funzione main() all'interno della quale va aggiunta la logica del programma.
- Inizio del corpo della funzione main().
- Dichiarare un array denominato age per memorizzare 5 numeri interi. Anche i 5 numeri interi sono stati inizializzati.
- Crea una variabile intera x usando un ciclo for.
- L'inizio del corpo del ciclo for.
- Utilizzando la variabile di ciclo x per scorrere i valori dell'array age e stamparli sulla console. "\n" รจ un carattere di nuova riga e viene stampato in una nuova riga dopo ogni iterazione.
- Fine del corpo del per loop.
- Fine del corpo della funzione main().
Array multidimensionale
Si tratta di un array in cui gli elementi di dati sono disposti per formare un array di array. Un array multidimensionale puรฒ avere un numero qualsiasi di dimensioni, ma sono comuni gli array bidimensionali e tridimensionali. Sintassi:
datatype array-name[d1][d2][d3]...[dn];
Il nome-array รจ il nome dell'array che avrร n dimensioni. Per esempio:
Matrice bidimensionale
Un array 2D memorizza i dati in un elenco con array 1-D. ร una matrice con righe e colonne. Per dichiarare un array 2D, utilizzare la seguente sintassi:
type array-Name [ x ][ y ];
Il tipo deve essere valido C++ tipo di dati. Visualizza un array 2D come una tabella, dove x indica il numero di righe mentre y indica il numero di colonne. Ciรฒ significa che identifichi ciascun elemento in un array 2D utilizzando la forma a[x][y], dove x รจ il numero di righe e y il numero di colonne a cui appartiene l'elemento.
Ecco un esempio di come inizializzare un array 2D:
int a[2][3] = {
{0, 2, 1} , /* row at index 0 */
{4, 3, 7} , /* row at index 1 */
};
Nell'esempio sopra, abbiamo un array 2D che puรฒ essere visto come una matrice 2ร3. Ci sono 2 righe e 3 colonne. ร possibile accedere all'elemento 0 come a[0][1] perchรฉ si trova all'intersezione tra riga con indice 0 e colonna con indice 1. ร possibile accedere all'elemento 3 come a[1][2] perchรฉ si trova a intersezione della riga indicizzata 1 e della colonna indicizzata 2.
Tieni presente che abbiamo semplicemente aggiunto le parentesi graffe per differenziare le diverse righe di elementi. L'inizializzazione avrebbe potuto essere eseguita anche nel modo seguente:
int a[2][3] = {0, 2, 1, 4, 3, 7};
};
Le seguenti C++ l'esempio dimostra come inizializzare e attraversare un array 2D:
#include <iostream> using namespace std; int main() { // a 2x3 array int a[3][2] = { {0, 2}, {1, 4}, {3, 7} }; // traverse array elements for (int i=0; i<3; i++) for (int j=0; j<2; j++) { cout << "a[" <<i<< "][" <<j<< "]: "; cout << a[i][j] << endl; } return 0; }
Produzione:
Ecco uno screenshot del codice sopra:
Code Spiegazione:
- Includere il file di intestazione iostream nel nostro codice. Ci permetterร di leggere e scrivere sulla console.
- Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
- Chiamando la funzione main() all'interno della quale deve essere aggiunto il codice.
- Inizio del corpo della funzione main().
- Un commento. IL C++ il compilatore salterร questo.
- Dichiarare una matrice 2D di 3 righe e 2 colonne. Sono stati aggiunti anche degli elementi all'array.
- Un commento. IL C++ il compilatore salterร questo.
- Creazione di una variabile utilizzando un ciclo for. Questa variabile eseguirร un'iterazione sugli indici di riga dell'array.
- Creazione di una variabile j utilizzando un ciclo for. Questa variabile eseguirร un'iterazione sugli indici delle colonne dell'array.
- Inizio del corpo dei loop.
- Stampa i valori delle variabili i e j sulla console all'interno delle parentesi quadre.
- Stampa il valore memorizzato nell'indice [i][j] dell'array a.
- Fine del corpo degli anelli.
- La funzione main() dovrebbe restituire un valore intero se il programma funziona correttamente.
- Fine del corpo della funzione main().
Array tridimensionale
Un array 3D รจ un array di array. Ogni elemento in un array 3D รจ identificato da un insieme di 3 indici. Per accedere agli elementi di un array 3D, utilizziamo tre cicli for. Per esempio:
#include<iostream> using namespace std; void main() { int a[2][3][2] = {{{4, 8},{2, 4},{1, 6}}, {{3, 6},{5, 4},{9, 3}}}; cout << "a[0][1][0] = " << a[0][1][0] << "\n"; cout << "a[0][1][1] = " << a[0][1][1] << "\n"; }
Produzione:
Ecco uno screenshot del codice:
Code Spiegazione:
- Includere il file di intestazione iostream nel nostro codice. Ci permetterร di leggere e scrivere sulla console.
- Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
- Chiamando la funzione main() all'interno della quale va aggiunta la logica del programma.
- Inizio del corpo della funzione main().
- Dichiarare un array 3D denominato an di dimensione 2x3x2. Anche i valori dell'array sono stati inizializzati.
- Accesso all'elemento memorizzato nell'indice [0] [1] [0] dell'array e stamparlo sulla console.
- Accesso all'elemento memorizzato nell'indice [0] [1] [1] dell'array e stamparlo sulla console.
- Fine del corpo della funzione main().
Puntatore a un array
A pointer รจ una variabile che contiene un indirizzo. Oltre a utilizzare un puntatore per memorizzare l'indirizzo di una variabile, possiamo usarlo per memorizzare l'indirizzo di una cella dell'array. Il nome di un array punta costantemente al suo primo elemento. Consideriamo la dichiarazione riportata di seguito:
int age[5];
L'etร รจ un puntatore a $age[0], l'indirizzo del primo elemento di un array denominato age. Considera il seguente esempio:
#include <iostream> using namespace std; int main() { int *john; int age[5] = { 19, 18, 21, 20, 17 }; john = age; cout << john << "\n"; cout << *john; }
Produzione:
Tieni presente che il primo valore dell'output precedente potrebbe restituire un valore diverso a seconda dell'indirizzo assegnato al primo elemento dell'array nella memoria del tuo computer.
Ecco uno screenshot del codice:
Code Spiegazione:
- Includere il file di intestazione iostream nel nostro codice. Ci permetterร di leggere e scrivere sulla console.
- Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
- Chiamando la funzione main() all'interno della quale va aggiunta la logica del programma.
- Inizio del corpo della funzione main().
- Dichiarare una variabile puntatore denominata *john.
- Dichiarare un array di numeri interi denominato age per memorizzare 5 numeri interi. Anche i valori degli interi sono stati inizializzati.
- Assegnando alla variabile john il valore dell'indirizzo dell'articolo memorizzato nel primo indice dell'array age.
- Stampa il valore della variabile john, che รจ l'indirizzo dell'elemento memorizzato nel primo indice dell'array age.
- Stampa del primo valore memorizzato nell'array age.
- Fine del corpo della funzione main().
I nomi degli array possono essere utilizzati come puntatori costanti ed รจ vero anche il viceversa. Ciรฒ significa che puoi accedere al valore memorizzato nell'indice 3 dell'array age con *(age + 3). Per esempio:
#include <iostream> using namespace std; int main() { // an array of 5 elements. int age[5] = { 19, 18, 21, 20, 17 }; int *p; p = age; // output array values cout << "Using pointer: " << endl; for (int x=0; x<5; x++) { cout << "*(p + " << x << ") : "; cout << *(p + x) << endl; } cout << "Using age as address: " << endl; for (int x = 0; x < 5; x++) { cout << "*(age + " << x << ") : "; cout << *(age + x) << endl; } return 0; }
Produzione:
Ecco uno screenshot del codice:
Code Spiegazione:
- Includere il file di intestazione iostream nel nostro codice. Ci permetterร di leggere e scrivere sulla console.
- Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
- Chiamata alla funzione main() e inizio del corpo della funzione main().
- Un commento. IL C++ il compilatore salterร questo.
- Dichiarare un array denominato age per memorizzare 5 numeri interi.
- Creazione di un puntatore intero p.
- Assegnando p il valore dell'indirizzo del primo elemento dell'array age.
- Un commento. IL C++ il compilatore salterร questo.
- Stampa del testo sulla console.
- Crea un numero intero x utilizzando un ciclo for. Il { segna l'inizio del corpo del ciclo for.
- Stampa i valori di x combinati con qualche altro testo sulla console.
- Stampa i valori di *(p + x) sulla console.
- Fine del corpo del ciclo for.
- Stampa del testo sulla console.
- Crea una variabile x utilizzando un ciclo for. Il { segna l'inizio del corpo del ciclo for.
- Stampa i valori di x da 0 a 4 insieme ad altro testo.
- Stampa i valori di *(etร + x).
- Fine del corpo del ciclo for.
- Valore restituito se il programma viene eseguito correttamente.
- Fine del corpo della funzione main().
Accesso ai valori di un Array
Gli elementi di un array sono accessibili tramite i rispettivi indici. L'indice dell'elemento a cui si accede รจ aggiunto tra parentesi quadre [ ] subito dopo il nome dell'array. Ad esempio:
int john = age[2];
Nell'esempio sopra, stiamo semplicemente affermando che l'etร di John รจ memorizzata nell'indice 2 dell'array denominato age. Ciรฒ significa che l'etร di John รจ 3rd valore nell'array age. Eccone uno completo C++ esempio che mostra come accedere e stampare questo valore:
#include<iostream> using namespace std; int main() { int age[5] = { 19, 18, 21, 20, 17 }; int john = age[2]; cout << "The age of John is:"<<john; }
Produzione:
Ecco uno screenshot del codice:
Code Spiegazione:
- Includere il file di intestazione iostream nel nostro codice. Ci permetterร di leggere e scrivere sulla console.
- Includere lo spazio dei nomi std in modo da utilizzare le sue classi e funzioni senza chiamarlo.
- Chiamando la funzione main() all'interno della quale deve essere aggiunto il codice.
- Inizio del corpo della funzione main().
- Dichiarare un array denominato age per memorizzare 5 elementi interi.
- Accedere al valore memorizzato nell'indice 2 dell'array age e memorizzarne il valore in una variabile denominata john.
- Stampa del valore della variabile john sulla console insieme ad altro testo.
Vantaggi di un array in C++
Ecco i vantaggi/vantaggi dell'utilizzo di Array in C++:
- Gli elementi dell'array possono essere attraversati facilmente.
- Facile da manipolare i dati dell'array.
- ร possibile accedere agli elementi dell'array in modo casuale.
- Gli array facilitano l'ottimizzazione del codice; quindi, possiamo eseguire molto lavoro utilizzando meno codice.
- Facile ordinare i dati dell'array.
Svantaggi di un array in C++
- Un array ha una dimensione fissa; quindi, non possiamo aggiungervi nuovi elementi dopo l'inizializzazione.
- L'allocazione di una quantitร di memoria superiore a quella richiesta comporta uno spreco di spazio di memoria, mentre una minore allocazione di memoria puรฒ creare un problema.
- Il numero di elementi da memorizzare in un array deve essere noto in anticipo.











