ciao ragazzi ho alcune piccole domande da farvi sul c++:


1-se definisco la struttura

typedef struct
{
char titolo[50]
.......
.......
.......
}t_proiezione;
//fino qua tutto ok,e poi

struct elemento
{
t_proiezione inf;
struct elemento*pun;
};//anche fino qua nessun problema
//e poi scrivo

struct elemento *aggiungi proiezione(struct elemento *p);

//che senso ha questa dicitura??????
//cioè tutto quello che precede le parentesi mi sembra la definizione di un puntatore a una struttura,e poi invece considerandolo solo dopo "*" mi sembra la dichiarazione di una funzione(ovviamente nel proseguire del programma c'è anche la definizione di tale funzione). Non riesco ad unire insieme le due cose....

2-ho letto quello che c'è da sapere riguardo il passaggio di parametri per indirizzo e reference
ma la dicitura:

void f (int*&x);//prototipo di funzione


cosa significa??????
fino adesso o vedevo scritto solo"*" o solo "&"..............


Mi sapreste gentilmente aiutare??????????????