Puntatori grezzi e operatore address-of
Dichiari i puntatori, ottenga gli indirizzi con & e comprenda i tipi puntatore
Puntatori grezzi e operatore address-of è una lezione C++ Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C++ Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C++ Academy include 4 lezioni in totale.
Che cos'è un puntatore?
Un puntatore contiene l'indirizzo di un altro oggetto. È una variabile il cui valore è una posizione di memoria.
Dichiarare un puntatore
Il tipo puntatore è T*. Per convenzione, si colloca * accanto al tipo.
int x = 10;
int* p = &x; // p holds the address of x
std::cout << p; // prints an address
std::cout << *p; // prints 10L'operatore di indirizzo
L'operatore unario & restituisce l'indirizzo di una variabile. Il tipo del risultato è T*.
int x = 42;
int* p = &x;L'operatore di dereferenziazione
L'operatore unario * legge o scrive l'oggetto a cui punta un puntatore.
*p = 100;
std::cout << x; // 100 (x changed through p)Puntatori null
Un puntatore che non punta a nulla dovrebbe essere impostato su nullptr. Dereferenziarlo produce un comportamento non definito.
int* p = nullptr;
if (p == nullptr) {
std::cout << "no target\n";
}In fondo, i puntatori sono numeri
Un indirizzo è semplicemente un intero, spesso di 64 bit. Il tipo del puntatore indica al compilatore come interpretare i byte presenti a quell'indirizzo.
Puntatore a const e puntatore const
Esistono due posizioni indipendenti per const:
int x = 1, y = 2;
const int* p1 = &x; // pointer to const int (cannot modify *p1)
int* const p2 = &x; // const pointer to int (cannot reseat)
const int* const p3 = &x; // bothDimensione dei puntatori
Tutti i puntatori hanno la stessa dimensione su una determinata piattaforma — in genere 8 byte nei sistemi a 64 bit. Anche un char* occupa 64 bit.
Puntatori a funzioni
È possibile ottenere l'indirizzo di una funzione e chiamarla tramite il puntatore.
int square(int x) { return x * x; }
int (*fp)(int) = □
std::cout << fp(5); // 25Puntatori a membri
Esiste una sintassi speciale per i puntatori ai membri delle classi. È rara nel codice moderno: per la maggior parte dei callback si usano std::function o le lambda.
Perché i puntatori sono importanti
I puntatori sono alla base di:
- Memoria dinamica (
new/deleteo puntatori intelligenti) - Riferimenti opzionali (nullable)
- Polimorfismo (dispatch virtuale tramite puntatori alla classe base)
- Interoperabilità con le API C
Verifica rapida
A cosa corrisponde il risultato dell'espressione &x?
Riepilogo
Un puntatore contiene un indirizzo. Usi & per ottenere un indirizzo e * per leggere o scrivere il valore puntato. nullptr è il valore nullo sicuro. I puntatori sono alla base della memoria dinamica, dei riferimenti opzionali e del polimorfismo.
Impara C++ con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 51
- Lezioni
- 203
Domande Frequenti
La lezione «Puntatori grezzi e operatore address-of» è gratuita?
Sì — il testo completo di «Puntatori grezzi e operatore address-of» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C++ Academy, passa a CoddyKit PRO. Il corso C++ Academy include 4 lezioni in totale.
Cosa imparerò in «Puntatori grezzi e operatore address-of»?
Dichiari i puntatori, ottenga gli indirizzi con & e comprenda i tipi puntatore Eserciti C++ Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C++ Academy?
Non è richiesta alcuna esperienza precedente. C++ Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Puntatori grezzi e operatore address-of»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C++ Academy?
Sì. Ogni lezione C++ Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Puntatori grezzi e operatore address-of
- Dereferenziazione e aritmetica dei puntatori
- nullptr e sicurezza dei puntatori nulli
- Quando usare puntatori o riferimenti