Le struct in C sono un potente strumento per creare tipi di dati personalizzati e raggruppare dati correlati. In questo articolo, vi guiderò passo dopo passo attraverso la loro definizione, utilizzo e alcune best practice.
Sintassi:
Una struct viene definita usando la parola chiave struct
seguita dal nome della struttura e da una coppia di parentesi graffe che racchiudono la lista dei suoi membri. Ogni membro è composto da un tipo di dato e da un nome identificativo.
struct Persona {
char nome[50];
int eta;
float stipendio;
};
In questo esempio, definiamo una struct chiamata Persona
con tre membri:
nome
: un array di caratteri di lunghezza 50 per memorizzare il nomeeta
: un numero intero per memorizzare l’etàstipendio
: un numero decimale per memorizzare lo stipendio
Creazione e utilizzo di variabili struct:
Per creare una variabile di tipo struct, si usa la parola chiave struct
seguita dal nome della struttura.
struct Persona persona1;
Ora, persona1
è una variabile di tipo Persona
che può essere utilizzata per memorizzare i dati di una persona.
Per accedere ai membri di una struct si usa l’operatore .
seguito dal nome del membro.
strcpy(persona1.nome, "Mario Rossi");
persona1.eta = 30;
persona1.stipendio = 2500.0f;
Esempio d’uso:
Supponiamo di voler scrivere un programma per memorizzare i dati di alcuni studenti. Possiamo utilizzare una struct per definire un tipo di dato Studente
con i seguenti membri:
matricola
: un numero identificativonome
: un array di caratteri per memorizzare il nomecognome
: un array di caratteri per memorizzare il cognomevoto
: un numero decimale per memorizzare il voto
struct Studente {
int matricola;
char nome[50];
char cognome[50];
float voto;
};
// Crea un array di 10 studenti
struct Studente studenti[10];
// Inserisci i dati del primo studente
studenti[0].matricola = 12345;
strcpy(studenti[0].nome, "Mario");
strcpy(studenti[0].cognome, "Rossi");
studenti[0].voto = 28.5;
// ...
// Stampa i dati di tutti gli studenti
for (int i = 0; i < 10; i++) {
printf("Matricola: %d\n", studenti[i].matricola);
printf("Nome: %s\n", studenti[i].nome);
printf("Cognome: %s\n", studenti[i].cognome);
printf("Voto: %.2f\n\n", studenti[i].voto);
}
Best practice:
- Scegli nomi significativi per le struct e i loro membri.
- Usa typedef per creare alias per le struct comunemente utilizzate.
- Documenta le tue struct con commenti.
- Usa le struct per raggruppare dati logicamente correlati.
- Evita di nidificare le struct troppo a fondo.
Conclusione:
Le struct sono un potente strumento per organizzare e gestire i dati in C. Imparare a usarle correttamente può rendere il tuo codice più efficiente e leggibile.
Altri articoli che potrebbero interessarti:
- Tipi di dati in C: Viariabili e Input Standard
- Funzioni in C: Le Funzioni
- Controlli di flusso in C: Selezione – Cicli