ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica ELEMENTI DI INFORMATICA http://agile.diee.unica.it A.A. 2011/2012 Ing. Giuseppe Destefanis Diee, secondo piano Tel. 070-6755774 mail: giuseppe.destefanis@diee.unica.it Linguaggio C
Strutture #include<stdio.h> #define N 30 typedef struct{ int matricola; char nome[N]; char cognome[N]; }Studente;
Strutture (2) Studente matricola nome cognome
Strutture (3) … int main () { Studente s1,s2; s1.matricola=234969; s1.nome="Paolo"; s1.cognome="Rossi"; s2.matricola=123456; s2.nome="Paola"; s2.cognome="Verdi"; }
Strutture (4) #include<stdio.h> #define N 30 typedef struct{ int matricola; char nome[N]; char cognome[30]; }Studente; int main () { Studente s1={234969,"Paolo","Rossi"}, s2={12345,"Paola","Verdi"}; }
Strutture (5) #include<stdio.h> #define N 30 typedef struct{ int matricola; char nome[N]; char cognome[30]; }Studente; void StampaStruttura(Studente s){ printf("Matricola: %d\n",s.matricola); printf("Nome: %s\n",s.nome); printf("Cognome: %s\n",s.cognome); } int main () { Studente s1={234969,"Paolo","Rossi"}, s2={12345,"Paola","Verdi"}; StampaStruttura(s1);
Strutture (6) #include<stdio.h> #define N 30 typedef struct{ int matricola; char nome[N]; char cognome[30]; }Studente; void StampaStruttura(Studente s){ printf("Matricola: %d\n",s.matricola); printf("Nome: %s\n",s.nome); printf("Cognome: %s\n",s.cognome); } int main () { Studente s1={234969,"Paolo","Rossi"}, s2; s2=s1; //copia membro a membro! StampaStruttura(s2);
Strutture (7) #include<stdio.h> #define N 30 typedef struct{ int matricola; char nome[N]; char cognome[30]; }Studente; void StampaStruttura(Studente s){ printf("Matricola: %d\n",s.matricola); printf("Nome: %s\n",s.nome); printf("Cognome: %s\n",s.cognome); } int main () { Studente s1, s2; scanf("%d",&s1.matricola); scanf("%s",s1.nome); scanf("%s",s1.cognome); s2=s1; StampaStruttura(s2);
Strutture (8) #include<stdio.h> #define N 30 typedef struct{ int matricola; char nome[N]; char cognome[30]; }Studente; void StampaStruttura(Studente s){ printf("Matricola: %d\n",s.matricola); printf("Nome: %s\n",s.nome); printf("Cognome: %s\n",s.cognome); } int main () { Studente s1, s2; scanf("%d",&s1.matricola); scanf("%s",s1.nome); scanf("%s",s1.cognome); s2=s1; s1.matricola=3; StampaStruttura(s1); StampaStruttura(s2);
Array di strutture (1) #include<stdio.h> #define N 30 typedef struct{ int matricola; char nome[N]; char cognome[N]; }Studente; int main () { Studente studenti[5]; for(int i=0; i<5; i++){ scanf("%d",&studenti[i].matricola); scanf("%s",&studenti[i].nome); scanf("%s",&studenti[i].cognome); } printf("Matricola: %d\n",studenti[i].matricola); printf("Nome: %s\n",studenti[i].nome); printf("Cognome: %s\n",studenti[i].cognome);
Array di strutture (2) #include<stdio.h> #define N 30 typedef struct{ int matricola; char nome[N]; char cognome[N]; }Studente; int main () { Studente stud; Studente *p; p=&stud; scanf("%d",&stud.matricola); // %30s limita l'acquisizione dei caratteri dallo stdin a 30 scanf("%30s",stud.nome); scanf("%30s",stud.cognome); printf("Matricola: %d\n",p->matricola); printf("Nome: %s\n",p->nome); printf("Cognome: %s\n",p->cognome); }
Operatore sizeof() #include<stdio.h> typedef struct{ int matricola; char nome[N]; char cognome[30]; }Studente; int main () { printf("Sizeof(int): %d\n",sizeof(int)); //4 printf("Sizeof(char): %d\n",sizeof(char)); //1 printf("Sizeof(double): %d\n",sizeof(double)); //8 int vett[4]; printf("Sizeof(vett): %d\n",sizeof(vett)); //16 int *p; printf("Sizeof(p): %d\n",sizeof(p)); //4 char *c; printf("Sizeof(c): %d\n",sizeof(c)); //4 Studente s; printf("Sizeof(s): %d\n",sizeof(s)); //64 }