In merito a...
float calc_med_temp( const vettore_temperature, int, const stringa );
...e simili, per quel che ne so ci si può limitare al solo tipo nel momento in cui si fornisce il prototipo di una funzione, mentre si deve specificare un parametro vero e proprio (con tanto di nome) quando si sviluppa il "corpo" di una funzione. Anche perché, se ci pensi, se non hai un nome per identificare i parametri, come fai a usarli in concreto nel "corpo" di una funzione?
* e &, invece, richiederebbero una risposta molto più articolata, perché possono riguardare l'uso dei puntatori (sia in C, sia in C++), ma & può riguardare anche i reference, che sono una particolarità del C++ imparentata coi puntatori ma non esattamente la stessa cosa.
Sempre ben disposto ad essere corretto se ho scritto delle sciocchezze.