Struct strutture e insieme di elementi omogenei
Le struct sono utilizzate per definire un insieme di elementi omogenei non prefissato. Si tratta di insiemi caratterizzati da vari elementi detti campi. Ogni insieme è caratterizzato da un tipo e un nome. Questi campi sono definiti all'interno di una struttura.
Definizione di una struttura
Una struttura si definisce nel modo seguente:
struct nomeStruttura {
tipoCampo1 nomeCampo1;
tipoCampo2 nomeCampo2;
...
tipoCampoK nomeCampoK;
};
Esempio:
struct studente {
char nome[13];
char cognome[13];
int codice;
int voti[DIM];
};
In memoria:
- Nome
- Cognome
- Codice
- Voti
Accesso ai campi di una struttura
Per accedere ai campi di una struttura si utilizza la notazione: nomeStruttura.nomeCampo.
Esempio:
studente.codice
Inizializzazione e assegnamento di strutture
Inizializzazione dei campi da input:
scanf("%s", studente.cognome);
Assegnamento:
studente.cognome = "Rossi";
Per l'assegnamento di strutture, è possibile assegnare un'intera struttura ad un'altra:
studente1 = studente2;
Attenzione: l'assegnamento tra array non è permesso direttamente, quindi occorre utilizzare un loop per copiare gli elementi.
Dati di tipo predefinito e definito dall'utente
Per definire un nuovo tipo globale, utilizziamo la parola chiave typedef:
typedef int vettore[32];
Questo permette di dichiarare vettori in modo più semplice e chiaro all'interno del codice:
vettore V1, V2, V3;
Anche le strutture possono essere usate con typedef:
typedef struct {
char nome[13];
char cognome[13];
int codice;
} Studente;
Utilizzo:
Studente studente1, studente2;
-
Tipi strutturati
-
Composizione morfologica: tipi principali di composti
-
Vari tipi di medie
-
Tipi di pubblicità dichiarativa