Array in C ++ - Dichiara - Inizializza - Puntatore ad esempi di array

Sommario:

Anonim

Cos'è un array?

Un array è una struttura dati che memorizza sequenzialmente un elemento dello stesso tipo di dati. Un array C ++ ha una dimensione fissa.

Puoi vedere un array come una raccolta di variabili di un tipo di dati simile. Invece di dichiarare ogni variabile e assegnarle un valore individualmente, puoi dichiarare una variabile (l'array) e aggiungere ad essa i valori delle varie variabili. Ogni valore aggiunto all'array è identificato da un indice.

In questo tutorial C ++ imparerai:

  • Cos'è un array?
  • Perché abbiamo bisogno di array?
  • Dichiara un array in C ++
  • Inizializzazione dell'array
  • Tipi di array
    • Array unidimensionale
    • Array multidimensionale
    • Array bidimensionale
    • Array tridimensionale
    • Puntatore a un array
  • Accesso ai valori di un array
  • Vantaggi di un array in C ++
  • Svantaggi di un array in C ++

Perché abbiamo bisogno di array?

Gli array sono molto importanti in qualsiasi linguaggio di programmazione. Forniscono un modo più conveniente per memorizzare le variabili o una raccolta di dati di un tipo di dati simile insieme invece di memorizzarli separatamente. Si accederà separatamente a ciascun valore dell'array.

Dichiara un array in C ++

La dichiarazione di array in C ++ implica l'indicazione del tipo e del numero di elementi che devono essere archiviati dall'array. Sintassi:

type array-Name [ array-Size ];

Regole per la dichiarazione di un array a dimensione singola in C ++.

  • Tipo: il tipo è il tipo di elementi da memorizzare nell'array e deve essere un tipo di dati C ++ valido.
  • Array-Name: L'array-Name è il nome da assegnare all'array.
  • Array-Size: 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 le età di 5 studenti come segue:

int age[5];

L'età dell'array memorizzerà 5 numeri interi che rappresentano le età di studenti diversi.

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 in un array è memorizzato all'indice 0, mentre l'ultimo elemento è memorizzato all'indice n-1, dove n è il numero totale di elementi nell'array.

Nel caso dell'array age, il primo elemento verrà memorizzato all'indice 0, mentre l'ultimo elemento verrà memorizzato all'indice 4.

Usiamo l'array di età 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 dichiarato all'interno di []. L'elemento 19 è all'indice 0, 18 all'indice 1, 21 all'indice 2, 20 all'indice 3 e 17 all'indice 4. Se non si specifica il numero di elementi da memorizzare nell'array all'interno di [], l'array sarà solo abbastanza grande da contenere gli elementi aggiunti all'interno di {}. Per esempio:

int age[] = {19, 18, 21, 20, 17};

L'istruzione sopra 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 sarà il 4 ° elemento dell'array.

Tipi di array

Esistono due tipi di array C ++:

  • Array unidimensionale
  • Array multidimensionale
  • Puntatore a un array

Array unidimensionale

Si tratta di un array in cui gli elementi di dati sono disposti linearmente in una sola dimensione. È comunemente chiamato array 1-D. Sintassi:

datatype array-name[size];
  • Il nome dell'array è il nome dell'array.
  • La dimensione è il numero di elementi da memorizzare nell'array.

Per esempio:

#include using namespace std;int main(){int age[5] = { 19, 18, 21, 20, 17 };for (int x = 0; x < 5; x++){cout <

Produzione:

Ecco uno screenshot del codice:

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
  2. Compreso lo spazio dei nomi std in modo da usare le sue classi e funzioni senza chiamarlo.
  3. Chiamando la funzione main () all'interno della quale va aggiunta la logica del programma.
  4. Inizio del corpo della funzione main ().
  5. Dichiarazione di un array denominato age per memorizzare 5 numeri interi. Anche i 5 numeri interi sono stati inizializzati.
  6. Crea una variabile intera x usando un ciclo for.
  7. L'inizio del corpo del ciclo for.
  8. Utilizzando la variabile di ciclo x per iterare sui valori dell'età dell'array e stamparli sulla console. "\ N" è un carattere di nuova riga e viene stampato in una nuova riga dopo ogni iterazione.
  9. Fine del corpo del ciclo for.
  10. Fine del corpo della funzione main ().

Array multidimensionale

Questo è 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 gli array bidimensionali e tridimensionali sono comuni. Sintassi:

datatype array-name[d1][d2][d3]… [dn];

Il nome dell'array è il nome dell'array che avrà n dimensioni. Per esempio:

Array 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 un tipo di dati C ++ valido. Visualizza un array 2D come una tabella, dove x indica il numero di righe mentre y indica il numero di colonne. Ciò significa che si identifica ogni elemento in un array 2D utilizzando la forma a [x] [y], dove x è il numero di riga ey 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 2x3. Sono presenti 2 righe e 3 colonne. È possibile accedere all'elemento 0 come [0] [1] perché si trova all'intersezione tra la riga indicizzata 0 e la colonna indicizzata 1. È possibile accedere all'elemento 3 come [1] [2] perché si trova nella intersezione di riga indicizzata 1 e colonna indicizzata 2.

Nota che abbiamo semplicemente aggiunto le parentesi graffe per differenziare le diverse righe di elementi. L'inizializzazione potrebbe anche essere stata eseguita come segue:

int a[2][3] = {0, 2, 1, 4, 3, 7};};

Il seguente esempio C ++ mostra come inizializzare e attraversare un array 2D:

#include using namespace std;int main(){// a 2x3 arrayint a[3][2] = { {0, 2}, {1, 4}, {3, 7} };// traverse array elementsfor (int i=0; i<3; i++)for (int j=0; j<2; j++){cout << "a[" <

Produzione:

Ecco uno screenshot del codice sopra:

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
  2. Compreso lo spazio dei nomi std in modo da usare le sue classi e funzioni senza chiamarlo.
  3. Chiamando la funzione main () all'interno della quale aggiungere il codice.
  4. Inizio del corpo della funzione main ().
  5. Un commento. Il compilatore C ++ lo salterà.
  6. Dichiarazione di una matrice 2D di 3 righe e 2 colonne. Gli elementi sono stati aggiunti anche all'array.
  7. Un commento. Il compilatore C ++ lo salterà.
  8. Creazione di una variabile i utilizzando un ciclo for. Questa variabile itererà sugli indici di riga dell'array.
  9. Creazione di una variabile j utilizzando a per un ciclo. Questa variabile itererà sugli indici di colonna dell'array.
  10. Inizio del corpo degli anelli.
  11. Stampa i valori delle variabili i e j sulla console tra parentesi quadre sulla console.
  12. Stampa il valore memorizzato all'indice [i] [j] dell'array a.
  13. Fine del corpo degli anelli.
  14. La funzione main () dovrebbe restituire un valore intero se il programma funziona correttamente.
  15. 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, usiamo tre cicli for. Per esempio:

#includeusing 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:

  1. Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
  2. Compreso lo spazio dei nomi std in modo da usare le sue classi e funzioni senza chiamarlo.
  3. Chiamando la funzione main () all'interno della quale va aggiunta la logica del programma.
  4. Inizio del corpo della funzione main ().
  5. Dichiarazione di un array 3D denominato an di dimensioni 2x3x2. Anche i valori dell'array sono stati inizializzati.
  6. Accedere all'elemento memorizzato all'indice [0] [1] [0] dell'array e stamparlo sulla console.
  7. Accedere all'elemento memorizzato all'indice [0] [1] [1] dell'array e stamparlo sulla console.
  8. Fine del corpo della funzione main ().

Puntatore a un array

Un puntatore è 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 di matrice. Il nome di un array punta costantemente al suo primo elemento. Considera la dichiarazione fornita 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 using namespace std;int main(){int *john;int age[5] = { 19, 18, 21, 20, 17 };john = age;cout << john << "\n";cout << *john;}

Produzione:

Si noti 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 computer.

Ecco uno screenshot del codice:

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
  2. Compreso lo spazio dei nomi std in modo da usare le sue classi e funzioni senza chiamarlo.
  3. Chiamando la funzione main () all'interno della quale va aggiunta la logica del programma.
  4. Inizio del corpo della funzione main ().
  5. Dichiarazione di una variabile puntatore chiamata * john.
  6. Dichiarazione di una matrice di numeri interi denominata age per memorizzare 5 numeri interi. Anche i valori degli interi sono stati inizializzati.
  7. Assegnando alla variabile john il valore dell'indirizzo dell'item memorizzato nel primo indice dell'array age.
  8. Stampa il valore della variabile john, che è l'indirizzo dell'elemento memorizzato nel primo indice dell'array age.
  9. Stampa del primo valore memorizzato nell'età dell'array.
  10. Fine del corpo della funzione main ().

I nomi degli array possono essere usati come puntatori costanti e anche il viceversa è vero. Ciò significa che è possibile accedere al valore memorizzato nell'indice 3 dell'età dell'array con * (età + 3). Per esempio:

#include using namespace std;int main() {// an array of 5 elements.int age[5] = { 19, 18, 21, 20, 17 };int *p;p = age;// output array valuescout << "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:

  1. Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
  2. Compreso lo spazio dei nomi std in modo da usare le sue classi e funzioni senza chiamarlo.
  3. Chiamata alla funzione main () e inizio del corpo della funzione main ().
  4. Un commento. Il compilatore C ++ lo salterà.
  5. Dichiarazione di un array denominato age per memorizzare 5 numeri interi.
  6. Creazione di un puntatore intero p.
  7. Assegnando a p il valore dell'indirizzo del primo elemento dell'array age.
  8. Un commento. Il compilatore C ++ lo salterà.
  9. Stampa del testo sulla console.
  10. Crea un intero x usando un ciclo for. La {segna l'inizio del corpo del ciclo for a.
  11. Stampa i valori di x combinati con un altro testo sulla console.
  12. Stampa i valori di * (p + x) sulla console.
  13. Fine del corpo del ciclo for.
  14. Stampa del testo sulla console.
  15. Crea una variabile x usando un ciclo for. La {segna l'inizio del corpo del ciclo for.
  16. Stampa i valori di x da 0 a 4 insieme ad altro testo.
  17. Stampa i valori di * (età + x).
  18. Fine del corpo del ciclo for.
  19. Restituisce il valore se il programma viene eseguito correttamente.
  20. Fine del corpo della funzione main ().

Accesso ai valori di un array

Si accede agli elementi di un array utilizzando i rispettivi indici. L'indice dell'elemento a cui accedere viene aggiunto tra parentesi quadre [] immediatamente dopo il nome dell'array. Per esempio:

int john = age[2];

Nell'esempio precedente, stiamo semplicemente affermando che l'età di john è memorizzata all'indice 2 dell'array denominato age. Ciò significa che l'età di giovanni è il 3 ° valore nell'età dell'array. Ecco un esempio C ++ completo che mostra come accedere e stampare questo valore:

#includeusing namespace std;int main(){int age[5] = { 19, 18, 21, 20, 17 };int john = age[2];cout << "The age of John is:"<

Produzione:

Ecco uno screenshot del codice:

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro codice. Ci permetterà di leggere e scrivere sulla console.
  2. Compreso lo spazio dei nomi std in modo da usare le sue classi e funzioni senza chiamarlo.
  3. Chiamando la funzione main () all'interno della quale aggiungere il codice.
  4. Inizio di un corpo della funzione main ().
  5. Dichiarazione di un array denominato age per memorizzare 5 elementi interi.
  6. Accesso al valore memorizzato nell'indice 2 dell'età dell'array e memorizzazione del suo valore in una variabile denominata john.
  7. Stampa il 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 della matrice possono essere attraversati facilmente.
  • Facile da manipolare i dati dell'array.
  • È possibile accedere agli elementi della matrice 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.
  • Allocare più memoria rispetto al requisito porta a uno spreco di spazio di memoria e 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 della matrice vengono archiviati in sequenza.
  • Gli elementi dell'array sono indicati utilizzando i rispettivi indici. Il primo elemento è all'indice 0, mentre l'ultimo elemento è all'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 e del numero di elementi da memorizzare nell'array.
  • Una matrice unidimensionale memorizza gli elementi in sequenza.
  • Una matrice 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 loro indici.
  • Si accede agli elementi della matrice utilizzando i relativi indici.
  • Una matrice 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.