Aggregazione di variabili – Struct

Premi qui per scaricare il PDF

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.

Premi qui per scaricare il PDF