M-am gandit sa scriu si un Index la aceasta lectie, ca sa stiti cam ce va asteapta

I. Conceptul de structura
II. Declararea unei structuri
III. Declararea variabilelor de tip structura
IV. Operatori pentru structuri
V. Un programel care foloseste ce am invatat in aceasta lectie
VI. Epilog

I.
Conceptul de structura Ca o introducere, ar trebui oarecum definit conceptul de structura in C
Structura = O colectie de valori.
Proprietati ale structurii :
- nu poate contine functii
- nu poate contine variabile de tip void
II.
Declararea unei structuri -se face prin intermediul cuvantului cheie
struct ( cuvant cheie = cuvant rezervat )
Forma generala
struct {
//declaratii de variabile;
tip_variabila1 ;
//..................................................
tip_variabilaN ;
} declarare_structura;
Deci, am invatat forma generala a structurii. Acum cateva observatii privind componentele acesteia:
a)
declarare_structura - apartine declaratiei unei variabile de tip structura , vom vorbi imediat si despre aceasta:).
b)
si
declarare_structura sunt componente optionale,dar nu simultan. Deci sau lipseste prima componenta sau ultima. Desigur, fiind optionale, exista si cazul in care ambele componente sunt prezente

c)La declararea structurii nu putem initializa nici o variabila din aceasta.
d) Componenta tip_variabila poate fi orice tip existent in C , chiar si struct, exceptie facand void .
Un exemplu in care declaram o structura
struct persoana {
int varsta;
char nume[30],prenume[30],ocupatie[30];
}l
III.
Declararea variabilelor de tip structura Variabilele de tip structura pot fi instante ale unei structuri sau pointeri catre o structura. Nu incep sa explic decat partea cu instantele unei structuri. Pointerii sunt acoperiti in alta lectie .
Forma generala
nume_structura ;
Componenta
declarare_structura este echivalentul declararii unei variabile de tip structura.Daca doar aceasta componenta este prezenta ,si nume_structura nu exista, structura este unica, si nu se pot creea instante ale acesteia.
Exemplu pentru structura definita mai sus
persoana var; // am definit o variabila var de tip persoana = instanta a structurii persoana
IV.
Operatori pentru structuri a) Accesarea unui camp dintr-o structura
- se face prin intermediul operatorului "." ( punct)
Exemplu :
//Considerand variabila var de tip persoana ,putem accesa urmatoarele campuri
var.varsta // tip int
var.nume //tip char
var.prenume // tip char
var.ocupatie // tip char
Code Example :
printf(" Nume si prenume : ");
scanf("%s %s", &var.nume,&var.prenume);
printf("Your full name is %s %s.\n",var.nume,var.prenume);
b) operatorul & ( vezi exemplu deasupra )
c) operatorul sizeof - returneaza marimea in bytes a structurii
Exemplu
printf("%d \n",sizeof(var)); // suma marimilor in memorie a campurilor acestei structuri
V.
Un programel care foloseste ce am invatat in aceasta lectie #include
struct persoana{
struct {
int zi,luna,an;
}data_nasterii;
struct {
char nume[30],prenume[30];
}name;
char ocupatie[50];
};
persoana Record;
int main(){
printf("Inregistrare persoana\n");
printf("Nume si prenume : ");
scanf("%s %s",&Record.name.nume,&Record.name.prenume);
printf("Data nasterii\n");
printf(" Zi : ");scanf("%d",&Record.data_nasterii.zi);
printf(" Luna :");scanf("%d",&Record.data_nasterii.luna);
printf(" An : ");scanf("%d",&Record.data_nasterii.an);
printf("Ocupatie : ");
scanf("%s",&Record.ocupatie);
write_record(Record); // functie care afiseaza continutul variabilei Record de tip structura
return 0;
}
Daca ati citit lectia, ar trebui sa stiti ce face codul

.
VI.
Epilog Da. Deci epilog , deci The End, Game over .

Sper ca a fost oarecum utila lectia. Ma astept la critici, chiar as fi bucuros sa ma completati sau sa ma corectati
Cheers