Non confondere i puntatori a variabili con i puntatori a funzioni. I puntatori a funzioni sono un concetto abbastanza complicato da digerire perche servono per eseguire dei callback che non credo assolutamente sia il tuo caso. invece i puntatori a varibili sono + comprensibili.
Esempio
double * func(double *v, int n);
questo è una funzione che ritorna un puntatore a double e accetta un puntatore a double e un intero.