INTRODUZIONE ALLA PROGRAMMAZIONE IN C



Strutture



Le strutture in C sono simili ai records in Pascal. Ad esempio: struct gun { char name[50]; int magazinesize; float calibre; }; struct gun arnies; Viene cosi definita una nuova struttura gun e definita arnies di tipo struct gun. Nota: "gun" e' un'etichetta (tag) per la struttura che serve come abbreviazione per le successive dichiarazioni. E' necessario solamente dichiarare "struct gun" e il corpo della struttura e' implicito come viene fatto per creare la struttura "arnies"; il tag e' opzionale. Le variabili possono anche essere dichiarate tra "}" e ";" di una dichiarazione di struttura; ad esempio: struct gun { char name[50]; int magazinesize; float calibre; } arnies; che equivale al precedente esempio di definizione di una nuova variabile strutturata di nome "arnies". Una struttura puo' essere pre-inizializzata al momento della dichiarazione: struct gun arnies={"Uzi",30,7}; Per accedere ai membri (o campi) di una struttura il C fornisce l'operatore ".". Ad esempio: arnies.magazinesize=100; Anche con le strutture si puo utilizzare typedef. La seguente istruzione crea un nuovo tipo "agun" che e' di tipo "struct gun" e puo' essere inizializzato come al solito: typedef struct gun { char name[50]; int magazinesize; float calibre; } agun; agun arnies= {"Uzi",30,7}; Qui "gun" e' ancora un'etichetta della struttura ed e' opzionale; agun e' un nuovo tipo di dato e arnies e' una variabile di tipo agun (che e' una struttura). Il C permette anche la definizione array di strutture: agun arniesguns[1000]; che si possono utilizzare nel seguente modo: arniesguns[50].calibre=5; dove il campo "calibre" del record 50 di arniesguns assume valore 5; itscalibre= arniesguns[50].calibre; dove viene assegnato alla variabile itscalibre il valore del campo calibre del record 50 di arniesguns.