In questa lezione studieremo le strutture in C, cioè un insieme di variabili di uno o più tipi, raggruppate da un nome in comune. Fino a questo momento abbiamo studiato gli array, tramite i quali siamo riusciti a raggruppare dati dello stesso tipo, cioè omogenei.
Ma nel momento in cui dobbiamo gestire dati di tipo diverso, possiamo utilizzare le strutture in C. Queste strutture le chiameremo record.
Quindi un record, identificato da un nome, è un insieme di dati, non necessariamente omogenei, identificati dal tipo e dal nome, detti campi.
Il campo è un singolo componente di un record che a sua volta può essere strutturato.
Possiamo anche utilizzare un record come tipo elementare di un altro record, definendo strutture dati complesse che prendono nome di record di record.
O ancora è possibile utilizzare i record come elementi di un array, in questo caso parliamo di array di record o tabella, anche questa è una struttura dati complessa.
Sintassi delle strutture in C
Definiamo adesso la sintassi delle strutture. In linguaggio C il record viene definito dunque con questa sintassi:
Fondamenti solidi di programmazione
Impara le basi della programmazione in C in modo semplice, pratico ed efficace. Variabili, cicli, funzioni, logica e algoritmi.
⏱️9 ore di corso registrato
🧩Più di 50 algoritmi risolti passo passo
🎯Livello base
💻100% online, fruibile quando vuoi
struct <nome_struttura> {
<definizione_campi>
}
Facciamo subito degli esempi per capire bene i concetti.
Innanzitutto è importante dire che all'interno della dichiarazione non è consentita alcuna inizializzazione dei campi. Non è inoltre consentito utilizzare per un campo un nome uguale a quello della struttura. Si possono utilizzare tipi semplici, tipi aggregati o anche tipi definiti dall'utente.
Dichiarare le variabili
Abbiamo visto negli esempi precedenti come definire un tipo di dato aggregato. Adesso, continuiamo a parlare delle strutture in C, e in particolar modo di come dichiarare le variabili.
Ad esempio per dichiarare due variabili di tipo alunno, riferendoci alla struttura precedente, potremmo scrivere:
struct alunno a1,a2;
In definitiva a1 e a2 sono delle istanze di alunno.
Se volessimo dichiarare invece due variabili di tipo auto potremmo scrivere ad esempio:
struct auto m1,m2;
Ma è possibile anche dichiararle in fase di dichiarazione del tipo di struct, ad esempio:
Per inserire invece nella struct ad esempio il cognome potremmo utilizzare:
gets(a1.cognome);
Mentre per stampare potremmo scrivere:
printf("cognome: %s",a1.cognome);
Semplice esempio d'uso
Facciamo dunque un piccolo esempio d'uso delle strutture in C a scopo didattico.
Definiamo una struttura alunno e inseriamo il nome e il cognome. Dichiariamo due variabili a1 e a2. Dopo inseriamo i dati nella struttura e infine li visualizziamo.
#include <stdio.h>
struct alunno {
char cognome[30];
char nome[20];
}a1,a2;
int main(){
printf("inserisci il nome:");
gets(a1.nome);
printf("inserisci il nome:");
gets(a1.cognome);
printf("inserisci il nome:");
gets(a2.nome);
printf("inserisci il nome:");
gets(a2.cognome);
printf("nome: %s", a1.nome);
printf("\ncognome:%s", a1.cognome);
printf("\nnome:%s", a2.nome);
printf("\ncognome:%s", a2.cognome);
return 0;
}
Nella prossima lezione parleremo ancora delle strutture in C, in particolar modo dell'istruzione typedef e faremo anche degli esempi pratici.
Un'email ogni tanto con i nuovi articoli e le guide — niente spam, ti disiscrivi quando vuoi.
🍪 Questo sito usa i cookie
Utilizziamo cookie tecnici necessari al funzionamento e, previo tuo consenso, cookie
analitici e di terze parti per migliorare l'esperienza di navigazione.
Leggi la Cookie Policy e la
Privacy Policy.