Federico Lelli / SchoolC++
PERCORSO GUIDATO

12 | Indirizzi, riferimenti e puntatori

Capitolo 12 · Teoria, esempio ragionato e verifica.

Prima di iniziare: completa il capitolo 11.

Concetti e definizioni

Un puntatore contiene l’indirizzo di un oggetto oppure nullptr. & ottiene un indirizzo; * accede all’oggetto puntato. Un riferimento è un alias inizializzato a un oggetto. L’oggetto deve essere ancora vivo quando lo usi: un indirizzo non ne prolunga la durata. Per le normali sequenze preferisci vector alla gestione manuale di new e delete.

Esempio completo

Salva come esempio.cpp. Compila con g++ -std=c++17 -Wall -Wextra esempio.cpp -o esempio; esegui ./esempio (PowerShell: .\esempio.exe).

#include <iostream>

int main() {
  int x = 10;
  int* p = &x;
  if (p != nullptr) *p = 20;
  int& alias = x;
  alias += 1;
  std::cout << x;
}

Segui l’esecuzione

Ottieni 21: p e alias permettono di accedere allo stesso x. Non dereferenziare nullptr o indirizzi di variabili locali già distrutte.

Prova tu

Scrivi void incrementa(int& n) e verifica la modifica nel chiamante.

Casi di prova e criteri di riuscita

n=4 → 5; n=-1 → 0. Spiega perché un parametro int n non modifica l’originale.

Prima di proseguire

Descrivi a parole l’algoritmo, esegui i casi di prova e spiega almeno un possibile errore. Poi passa agli esercizi del capitolo 12.

Materiali didattici curati e rielaborati da Federico Lelli. Le fonti e i riferimenti specifici sono indicati nei materiali disponibili.