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: 10Come 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 50Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Sfida
FacileNon 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++
1Fondamenti dei puntatori
Introduzione ai puntatoriDichiarazione e inizializzazioneAritmetica - AssegnazioneAritmetica - OperazioniPuntatori constPuntatori e array2Puntatori e riferimenti
Puntatori come parametriRiferimenti - &Riferimenti come parametriPuntatori vs riferimenti3Allocazione dinamica della memoria
Operatori new e deleteMemory leakArray dinamicoArray dinamico - inserimentoEsercitati da solo: Compilatore C++ online