Aggregare una variabile, significa prendere più variabili e metterle insieme
Collezioni di variabili omogenee: ARRAY
Collezioni di variabili eterogenee: STRUCT
struct
{
char via[20]; //1 campo: stringa - attributo
int numero; //attributo
int CAP; //attributo
char citta[20]; //attributo
} domicilio; //nome della variabile di tipo record
domicilio → è una variabile di tipo STRUCT con 4 campi di vario tipo.
Struct → descrive una sorta di contenitore contenente attributi di tipo eterogeneo. Esso raggruppa dati più semplici.
Gli attributi della variabile di tipo struct, NON sono visibili direttamente. Il loro nome deve essere preceduto da quello della variabile di tipo struct a cui appartengono (interponendo ‘.’ come separatore) → domicilio.numero
Assegnamento di valori agli attributi della variabile di tipo struct
strcpy(domicilio.via, "Ponzio"); //viene copiato nell'attributo via della variabile struct domicilio
domicilio.numero = 34;
domicilio.CAP = 20133;
strcpy(domicilio.citta, "Milano");
Accesso agli attributi (leggere, scrivere)
printf("%d", domicilio.numero);
printf("%d\\n", strlen(domicilio.citta)); //Numero di elementi nell'attributo citta (senza contare il carattere tappo \\0)
printf("%s", domicilio.citta); //stampa l'attributo via (array)
scanf("%d", &domicilio.CAP); //Inserisco il valore di CAP
Se due variabili sono di tipo struct, identiche (cioè dichiarate insieme) è lecito assegnare l’una all’altra.
struct
{
//ATTRIBUTI
} rec1, rec2;
rec2 = rec1;
rec2 = rec1 → è lecito solo se le struct hanno esattamente gli stessi attributi.