Per fare degli esempi "non ambigui" devi sempre specificare come hai dichiarato le tue variabili e i tuoi puntatori. Se ad esempio hai scritto

char vettore[100];
char *p;

allora dovrai scrivere

p=&vettore[0];
funzione(p);

e questo sara' equivalente a

funzione(vettore);

Detto questo, i puntatori sono "essenziali" in C nel passaggio di parametri alle funzioni nel momento in cui bisogna che tali funzioni modifichino il valore di tali dati.

Probabilmente non e' possibile che tu capisca a fondo la loro importanza se non li studi ed utilizzi a fondo ....

Fra l'altro, dire che sono limitati dall'aritmetica non e' corretto e non ha neanche tanto senso. Non ha infatti alcuno scopo fare una "divisione" tra due puntatori, ma imparerai che esiste una specifica "aritmetica dei puntatori" molto utile in tanti casi.