prof. Nunzio Brugaletta Programmazione e linguaggio C

EnneBi - Programmazione
Avanti Indietro Inizio


6.2 Puntatori a strutture

Ricorre spesso, specie nelle elaborazioni che riguardano strutture dati dinamiche, così come si vedrà in seguito, la necessità di usare puntatori a strutture: per esempio per passare ad una funzione un riferimento ad una struttura.

Tali necessità sono così frequenti che il linguaggio C mette a disposizione uno speciale operatore: l’operatore -> (il trattino seguito dal simbolo di maggiore):

...
typedef struct rec {	/*1*/
  char titolo[50]; 
  char autore[20]; 
  char editore[20]; 
  float prezzo; 
}libro;
...
void leggi(libro *pl);	/*2*/
...
main(){
  libro lib1; 
  ... 
  leggi(&lib1);	/*3*/ 
  ... 
}

void leggi(libro *pl){
  ... 
  gets(pl->titolo);	/*4*/ 
  gets(pl->autore);	/*4*/ 
  ... 
}

Nella 1 si dichiara la struttura che ha visibilità globale.

La 2 mostra il prototipo di una funzione a cui viene passato un puntatore ad un dato di tipo libro.

Nella riga 3 si chiama la funzione leggi passando l’indirizzo di lib1, istanza della struttura libro.

Nelle 4 viene utilizzato l’operatore -> per accedere alle componenti della struttura. Una scrittura alternativa più lunga e, nel caso di strutture, poco usata sarebbe stata:

...
gets((*pl).titolo);
gets((*pl).autore); 
...


Avanti Indietro Inizio

http://ennebi.solira.org ennebi@solira.org