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.