C struct (Strukture)

V tej vadnici boste izvedeli več o vrstah struktur v programiranju C. S pomočjo primerov se boste naučili definirati in uporabljati strukture.

Pri programiranju C je struktura (ali struktura) zbirka spremenljivk (lahko različnih vrst) pod enim imenom.

Kako definirati strukture?

Preden lahko ustvarite strukturne spremenljivke, morate določiti njen podatkovni tip. Za določitev strukture structse uporablja ključna beseda.

Sintaksa struct

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

Tu je primer:

 struct Oseba (ime char (50); int citNo; plačna plača;); 

Tu struct Personje definiran izpeljani tip . Zdaj lahko ustvarite spremenljivke te vrste.

Ustvari spremenljivke struct

Ko je deklariran tip struct, ni dodeljenega pomnilnika ali pomnilnika. Če želimo dodeliti pomnilnik določenemu tipu strukture in delati z njim, moramo ustvariti spremenljivke.

Evo, kako ustvarimo strukturne spremenljivke:

struct Oseba (ime char (50); int citNo; plačna plača;); int main () (struct Oseba person1, person2, p (20); return 0;)

Drug način ustvarjanja spremenljivke struct je:

 struct Oseba (ime char (50); int citNo; plačna plača;) person1, person2, p (20); 

V obeh primerih struct Personsta ustvarjeni dve spremenljivki person1, person2 in spremenljivka matrike p z 20 elementi tipa .

Dostop do članov strukture

Za dostop do članov strukture obstajata dve vrsti operaterjev.

  1. . - Član operater
  2. -> - Operator kazalca strukture (o tem bomo govorili v naslednji vadnici)

Recimo, da želite dostopati do plače osebe2. Evo, kako to lahko storite.

 oseba2.plača

Primer: dodajte dve razdalji

 // 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; )

Izhod

 1. razdalja Vnesite noge: 12 Vnesite palce: 7.9 2. razdalja Vnesite noge: 2 Vnesite palce: 9.8 Vsota razdalj = 15'-5.7 "

Tip ključne besededef

Ključno typedefbesedo uporabljamo za ustvarjanje imena vzdevka za podatkovne tipe. Običajno se uporablja s strukturami za poenostavitev sintakse deklariranja spremenljivk.

Ta koda

struct razdalja (int čevljev; plavajoči palec;); int main () (struct razdalja d1, d2;)

je enakovredno

typedef struct Razdalja (int čevljev; plavajoči palec;) razdalje; int main () (razdalje d1, d2;)

Vgnezdene strukture

Strukture lahko ustvarite znotraj strukture v programiranju C. Na primer

strukturni kompleks (int imag; float real;); številka struct (struct kompleks comp; int integers;) num1, num2;

Recimo, da želite nastaviti imag spremenljivke num2 na 11. Evo, kako to lahko storite:

 num2.comp.imag = 11; 

Zakaj strukture v jeziku C?

Recimo, da želite shraniti podatke o osebi: njeno ime, državljansko številko in plačo. Za shranjevanje teh informacij lahko ustvarite različno ime spremenljivke, citNo in plačo.

Kaj če morate shraniti podatke več kot ene osebe? Zdaj morate za vsako informacijo na osebo ustvariti različne spremenljivke: ime1, citNo1, plača1, ime2, citNo2, plača2 itd.

Boljši pristop bi bil, če bi imeli zbirko vseh povezanih informacij pod eno samo Personstrukturo imen in jih uporabili za vsako osebo.

Več o struct

  • Strukture in kazalci
  • Prenos struktur v funkcijo

Zanimive Članki...