Î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ă, struct
se 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 Person
este 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 Person
sunt 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.
.
- Operator membru->
- 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 typedef
cuvâ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ă Person
structură de nume și să o utilizați pentru fiecare persoană.
Mai multe despre struct
- Structuri și indicatoare
- Trecerea structurilor la o funcție