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 struct
se 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 Person
je 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 Person
sta 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.
.
- Član operater->
- 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 typedef
besedo 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 Person
strukturo imen in jih uporabili za vsako osebo.
Več o struct
- Strukture in kazalci
- Prenos struktur v funkcijo