Structuri

Ce sunt structurile?

Conceptul de structură, cum se definește și când se folosește.

Ce este o structură

Structuri în C/C++

Structurile apar foarte des la BAC, în special la exercițiile în care trebuie:

  • să citești corect câmpurile unei variabile de tip structură
  • să construiești definiția unei structuri pornind de la expresii date
  • să lucrezi cu structuri în structuri
  • să lucrezi cu vectori de structuri
  • să lucrezi cu tablouri în interiorul unei structuri
  • să recunoști atribuiri corecte între structuri de același tip

Ce este o structură

O structură este un tip de date care grupează mai multe informații despre același obiect.

Ideea este simplă: în loc să folosim mai multe variabile separate, putem crea un singur tip nou care le conține pe toate.

Exemplu

Dacă vrem să memorăm o dată calendaristică, avem nevoie de:

  • zi
  • lună
  • an

În loc să folosim trei variabile separate, putem scrie:

struct data {
    int zi, luna, an;
} x;

Aici:

  • data este eticheta structurii
  • zi, luna, an sunt câmpurile structurii
  • x este o variabilă de tip data

Cu alte cuvinte, x conține simultan:

  • x.zi
  • x.luna
  • x.an

Cum accesăm câmpurile

Pentru a accesa un câmp al unei structuri, folosim punctul.

Exemple:

x.zi
x.luna
x.an

Dacă vrem să citim valorile, scriem:

cin >> x.zi >> x.luna >> x.an;

Scheletul general

Acesta este modelul pe care trebuie să îl știi foarte bine:

struct eticheta {
    tipcamp1 camp1;
    tipcamp2 camp2;
    tipcamp3 camp3;
} variabila;

Exemplu concret

struct elev {
    char nume[31];
    int varsta;
    float medie;
} e;

Aici:

  • elev este eticheta
  • nume, varsta, medie sunt câmpuri
  • e este variabila declarată

Ce tipuri pot avea câmpurile

Un câmp dintr-o structură poate fi:

  • tip simplu: int, float, double, char
  • tablou: int v[10], char s[51]
  • altă structură

Exemplu:

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

struct elev {
    char nume[31];
    data dataNasterii;
} e;

Aici, dataNasterii este câmp de tip structură.