Menu
Coddy logo textTech

Puntatori e array

Lezione 6 di 14 del corso Puntatori in C++ di Coddy.

Ora che hai imparato a conoscere i puntatori costanti e i puntatori a costanti e sai qual è la differenza, possiamo passare alla relazione tra puntatori e array.

Quando dichiariamo un array, il nome dell'array è in realtà un puntatore costante a un valore non costante, quindi l'indirizzo a cui punta il puntatore è costante e non può essere modificato, mentre il valore che contiene sì. 

Se abbiamo int list[10];, qui list è in realtà int * const e list ha lo stesso valore di &list[0]


int list[] = {10, 20, 30, 40, 50};
cout << "First: " << *list << endl;
cout << "Third: " << *(list + 2) << endl;
int *ptr = list;
cout << "First again: " << *ptr;
Output:
First: 10
Third: 30
First again: 10

Come puoi vedere, possiamo usare il nome dell'array list come puntatore al primo elemento ed eseguire le operazioni necessarie. L'unico svantaggio nell'usare il puntatore dell'array stesso è che non possiamo modificarlo, mentre se creiamo un puntatore ptr che punta alla stessa area di memoria di list, possiamo successivamente cambiarne la posizione nel programma, ad esempio:


int list[] = {10, 20, 30, 40, 50};
int *ptr = list;
for(int i = 0; i < 5; i++)
    cout << *ptr++ << " ";
Output:
10 20 30 40 50

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

challenge icon

Sfida

Facile

Non modificare alcuna parte del codice predefinito; è stato creato un array chiamato numbers usando il puntatore numbers e la dereferenziazione. Stampa tutti gli elementi pari presenti nell’array, separati da uno spazio bianco.

Provalo tu

#include <iostream>

using namespace std;

int main() {
    // NON MODIFICARE IL CODICE QUI SOTTO
    int n, x;
    cin >> n;
    int numbers[n];
    for(int i = 0; i < n; i++)
        cin >> numbers[i];
    // NON MODIFICARE IL CODICE QUI SOPRA

    // Inserisci il tuo codice qui

    return 0;
}

Tutte le lezioni di Puntatori in C++

Esercitati da solo: Compilatore C++ online