Che cos’è un puntatore?
Fa parte della sezione Logica e flusso del percorso C di Coddy. Lezione 1 di 63.
Immagina la memoria del tuo computer come un enorme condominio con migliaia di stanze. Ogni stanza ha un indirizzo univoco e può memorizzare un dato. Quando crei una variabile in C, le viene assegnata una di queste stanze.
Un puntatore è un tipo speciale di variabile che non memorizza dati normali come numeri o caratteri. Memorizza invece l’indirizzo della posizione di memoria di un’altra variabile. Immagina di annotare il numero dell’appartamento di qualcuno su un pezzo di carta: la carta non contiene la persona, ma ti dice esattamente dove trovarla.
int age = 25; // Questo crea una variabile 'age' in memoria
int *ptr; // Questo crea un puntatore che può memorizzare un indirizzoIn questo esempio, age è memorizzata a un determinato indirizzo di memoria (supponiamo la stanza 1004) e ptr è una variabile puntatore che potrebbe memorizzare l'indirizzo 1004 per «puntare» alla variabile age.
I puntatori sono una delle funzionalità più potenti del C perché ti permettono di lavorare direttamente con gli indirizzi di memoria, rendendo i tuoi programmi più efficienti e consentendo tecniche avanzate come l'allocazione dinamica della memoria e le strutture dati complesse.
Provalo tu
Questa lezione non include una sfida di codice.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Fondamenti dei puntatori
Che cos’è un puntatore?Dichiarare i puntatoriL’operatore di indirizzo (&)L’operatore di dereferenziazione (*)Puntatori NULLRiepilogo: nozioni di base sui puntatori4Progetto: Utility di testo semplice
Panoramica del progettoConteggio dei caratteri2Puntatori e array
I nomi degli array come puntatoriElementi degli array e puntatoriAritmetica dei puntatoriConfrontare i puntatoriRiepilogo: attraversamento di un array con i puntatori5Puntatori e funzioni
Passaggio per valorePassare puntatori alle funzioniModificare le variabili tramite puntatoriUn esempio classico: scambiare valoriPassare array alle funzioniRiepilogo: argomenti puntatore nelle funzioni3Array di caratteri e stringhe
Stringhe come array di charIl terminatore nullInput di stringhe con scanfUso di strlen()Uso di strcpy()Uso di strcat()Uso di strcmp()Riepilogo: funzioni di base per le stringhe6Gestione della memoria
Memoria Stack vs. HeapAllocazione dinamica - malloc()Usare sizeof() per l'allocazioneVerificare il fallimento dell'allocazioneLiberare la memoria con free()Allocare con calloc()Riepilogo: array dinamico9Progetto: Inserimento semplice di un contatto
Progetto: Definire una struct ContattoFunzione per creare un contattoEsercitati da solo: Compilatore C online