De ce contează?
Gândește-te la o fișă de elev din catalog: pe aceeași foaie scrii numele, vârsta și media — trei lucruri de naturi complet diferite, dar care descriu UN singur elev. Nu ții numele într-un caiet, vârstele în alt caiet și mediile în al treilea: le-ar fi imposibil să mai știi care nume merge cu care medie. Un struct este exact acea fișă: o singură foaie pe care grupezi, sub un singur nume, mai multe rubrici diferite.
Ce este
Un struct este un tip de date nou, pe care îl construiești tu, grupând sub un singur nume mai multe câmpuri — fiecare cu tipul lui. Câmpurile pot fi de tipuri diferite (de aceea spunem că structura e neomogenă): un șir de caractere pentru nume, un întreg pentru vârstă, un real pentru medie. Toate descriu împreună aceeași entitate.
Până acum, când voiai să reții vârsta unui elev foloseai un int. Dar un elev nu e doar o vârstă — e nume și vârstă și medie, toate odată. struct îți dă exact asta: un singur „recipient” care ține împreună date de naturi diferite, ca să le poți trata ca pe o singură entitate.
Reține cele două idei care definesc un struct: (1) adună câmpuri de tipuri diferite sub un singur nume și (2) le tratează ca pe o singură entitate. Un vector e opusul primei idei — cere ca toate elementele să fie de același tip (int[], float[]). Vectorul te ajută când ai multe lucruri la fel; structura, când ai un lucru descris din mai multe unghiuri.