C struct (Structuri)

În acest tutorial, veți afla despre tipurile de structuri în programarea C. Veți învăța să definiți și să utilizați structurile cu ajutorul exemplelor.

În programarea C, o structură (sau structură) este o colecție de variabile (pot fi de diferite tipuri) sub un singur nume.

Cum se definesc structurile?

Înainte de a putea crea variabile de structură, trebuie să îi definiți tipul de date. Pentru a defini o structură, structse folosește cuvântul cheie.

Sintaxa struct

 struct structureName (dataType member1; dataType member2; …); 

Iată un exemplu:

 struct Persoană (char name (50); int citNo; float salariu;); 

Aici struct Personeste definit un tip derivat . Acum, puteți crea variabile de acest tip.

Creați variabile struct

Când este declarat un tip struct, nu este alocată nicio memorie sau stocare. Pentru a aloca memoria unui anumit tip de structură și a lucra cu acesta, trebuie să creăm variabile.

Iată cum creăm variabile de structură:

struct Persoană (char name (50); int citNo; float salariu;); int main () (struct Person person1, person2, p (20); return 0;)

Un alt mod de a crea o variabilă struct este:

 struct Persoană (char name (50); int citNo; float salariu;) person1, person2, p (20); 

În ambele cazuri, struct Personsunt create două variabile person1, person2 și o variabilă matrice p având 20 de elemente de tip .

Accesați membrii unei structuri

Există două tipuri de operatori utilizați pentru accesarea membrilor unei structuri.

  1. . - Operator membru
  2. -> - Operatorul indicatorului de structură (va fi discutat în următorul tutorial)

Să presupunem că doriți să accesați salariul persoanei2. Iată cum o puteți face.

 persoana2.salariu

Exemplu: Adăugați două distanțe

 // Program to add two distances (feet-inch) #include struct Distance ( int feet; float inch; ) dist1, dist2, sum; int main() ( printf("1st distance"); printf("Enter feet: "); scanf("%d", &dist1.feet); printf("Enter inch: "); scanf("%f", &dist1.inch); printf("2nd distance"); printf("Enter feet: "); scanf("%d", &dist2.feet); printf("Enter inch: "); scanf("%f", &dist2.inch); // adding feet sum.feet = dist1.feet + dist2.feet; // adding inches sum.inch = dist1.inch + dist2.inch; // changing to feet if inch is greater than 12 while (sum.inch>= 12) ( ++sum.feet; sum.inch = sum.inch - 12; ) printf("Sum of distances = %d\'-%.1f "", sum.feet, sum.inch); return 0; )

Ieșire

 Prima distanță Introduceți picioarele: 12 Introduceți inch: 7,9 A doua distanță Introduceți picioarele: 2 Introduceți inch: 9,8 Suma distanțelor = 15'-5,7 "

Cuvânt cheie typedef

Folosim typedefcuvântul cheie pentru a crea un nume de alias pentru tipurile de date. Este frecvent utilizat cu structuri pentru a simplifica sintaxa declarării variabilelor.

Acest cod

struct Distanță (picioare int; inch float;); int main () (struct Distanța d1, d2;)

este echivalent cu

typedef struct Distanță (picioare int; inch float;) distanțe; int main () (distanțele d1, d2;)

Structuri imbricate

Puteți crea structuri într-o structură în programarea C. De exemplu,

struct complex (int imag; float real;); struct number (struct complex comp; int integers;) num1, num2;

Să presupunem că doriți să setați imag variabila num2 la 11. Iată cum o puteți face:

 num2.comp.imag = 11; 

De ce structuri în C?

Să presupunem că doriți să stocați informații despre o persoană: numele acesteia, numărul cetățeniei și salariul. Puteți crea diferite variabile nume, citNo și salariu pentru a stoca aceste informații.

Ce se întâmplă dacă trebuie să stocați informații despre mai multe persoane? Acum, trebuie să creați diferite variabile pentru fiecare informație per persoană: nume1, citNo1, salariu1, nume2, citNo2, salariu2 etc.

O abordare mai bună ar fi să aveți o colecție de toate informațiile conexe sub o singură Personstructură de nume și să o utilizați pentru fiecare persoană.

Mai multe despre struct

  • Structuri și indicatoare
  • Trecerea structurilor la o funcție

Articole interesante...