Array in formato C++ | Dichiarare | Inizializza | Puntatore ad esempi di array
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:
Spiegazione del codice:
- 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:
Spiegazione del codice:
- 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:
Spiegazione del codice:
- 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:
Spiegazione del codice:
- 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:
Spiegazione del codice:
- 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:
Spiegazione del codice:
- 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.
Sommario
- Un array è una struttura dati che memorizza elementi dello stesso tipo di dati.
- Gli elementi dell'array vengono memorizzati in sequenza.
- Gli elementi dell'array sono indicati utilizzando i rispettivi indici. Il primo elemento si trova nell'indice 0, mentre l'ultimo elemento si trova nell'indice n-1, dove è il numero totale di elementi dell'array.
- La dichiarazione di un array implica la definizione dei tipi di dati degli elementi dell'array nonché il numero di elementi da memorizzare nell'array.
- Un array unidimensionale memorizza gli elementi in sequenza.
- Un array bidimensionale memorizza gli elementi in righe e colonne.
- Un array tridimensionale è un array di array.
- Gli elementi possono essere aggiunti a un array utilizzando i relativi indici.
- È possibile accedere agli elementi dell'array utilizzando i relativi indici.
- Un array multidimensionale ha più di una dimensione.
- Il nome dell'array punta al suo primo elemento.
- Gli array hanno una dimensione fissa, il che significa che non è possibile aggiungere nuovi elementi all'array dopo la sua inizializzazione.