I puntatori sono utili soprattutto in funzione del fatto che possiedono un aritmetica particolare, e che permettono l'accesso indiretto ad una variabile.
Esempio stolto: se una funzione deve prendere come parametro una struct con 120 campi, passando un puntatore a tale struttura evito di copiare nello stack i valori di 120 campi, riducendo il tempo di esecuzione.