Tipul struct

O structura este o colectie de valori eterogene, stocate intr-o zona compacta de memorie.
Componentele unei structuri, denumite campuri, sunt identificate prin nume simbolice, denumite selectori.
Campurile unei structuri pot fi de orice tip, simplu sau derivat, dar nu void sau functie.

Declararea structurilor se face folosind cuvantul cheie struct:

struct [nume_structura]{
  tip1 membrii;
  tip2 membrii;
................
  tipn membrii;
}[lista_declaratori]; //variabile de tip structura

nume_structura saulista_declaratori pot lipsi, dar nu simultan.
Daca se precizeaza nume_structura, atunci inseamna ca se face definirea tipului struct nume_structura, care poate fi apoi folosit pentru declararea de variabile, ca tip de parametri formali sau ca tip de rezultat returnat de functii:

Exemplu1:
struct persoana{ //se declara tipul struct persoana
    char nume[20];
    int varsta;
}; //lipseste lista_declaratori

Exemplu2:
struct{ //lipseste nume_struct
    char titlu[20],autor[15],editura[12];
    int an_aparitie;
}carte,biblioteca[1000]; //nu se declara un tip, deci
  //doar aici pot fi facute declaratiile de variabile

Un camp al unei structuri poate fi de tip structura, dar nu aceeasi cu cea definita.

Exemplu3:
struct persoana{ //se declara tipul struct persoana
    char nume[20];
    struct{
      int zi,an,luna
    }data_nasterii; //camp de tip structura
}p;

Exemplu4:
struct data{
       int zi,luna,an;}

struct persoana{
       char nume[30],prenume[30];
       data datan;}


Folosind cuvantul cheie typedef se pot defini tipuri utilizator echivalente pentru cele structura.

Selectarea unui camp al unei variabile structura se realizeaza folosind operatorul de selectie . .
Campul selectat se comporta ca o variabila de acelasi tip, deci i se pot aplica aceleasi prelucrari ca oricarei variabile de tipul respectiv.

variabila_structura.nume_camp

Exemplu:
persoana p; //se declara variabila p de tip persoana

 p.nume - campul nume din structura persoana
 p.datan.an - campul an din data nasterii
 p.datan.luna - campul luna din data nasterii
 p.datan.zi - campul zi din data nasterii

counter for wordpress

View My Stats