Štruktúra C (štruktúry)

V tomto tutoriáli sa dozviete o typoch štruktúr v programovaní C. Naučíte sa definovať a používať štruktúry pomocou príkladov.

V programovaní C je štruktúra (alebo štruktúra) zbierka premenných (môžu byť rôznych typov) pod jedným menom.

Ako definovať štruktúry?

Predtým, ako budete môcť vytvoriť premenné štruktúry, musíte definovať ich údajový typ. Na definovanie štruktúry structsa používa kľúčové slovo.

Syntax štruktúry

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

Tu je príklad:

 Stručná osoba (char name (50); int citNo; pohyblivý plat;); 

Tu struct Personje definovaný odvodený typ . Teraz môžete vytvárať premenné tohto typu.

Vytvorte štruktúrne premenné

Keď je deklarovaný typ štruktúry, nie je alokovaná žiadna pamäť alebo pamäť. Aby sme mohli prideliť pamäť danému typu štruktúry a pracovať s ňou, musíme vytvoriť premenné.

Tu je postup, ako vytvárame štruktúrne premenné:

štruktúra Osoba (meno (50); int citNo; pohyblivý plat;); int main () (štruktúra Osoba osoba1, osoba2, p (20); návrat 0;)

Ďalším spôsobom, ako vytvoriť premennú struct, je:

 struct Osoba (char name (50); int citNo; pohyblivý plat;) person1, person2, p (20); 

V obidvoch prípadoch struct Personsa vytvoria dve premenné person1, person2 a premenná poľa p s 20 prvkami typu .

Prístup k členom štruktúry

Na prístup k členom štruktúry sa používajú dva typy operátorov.

  1. . - členský operátor
  2. -> - Operátor ukazovateľa štruktúry (bude popísaný v ďalšom návode)

Predpokladajme, že chcete získať prístup k platu osoby2. Takto to môžete urobiť.

 osoba2.plata

Príklad: Pridajte dve vzdialenosti

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

Výkon

 1. vzdialenosť Zadajte stopy: 12 Zadajte palce: 7,9 2. vzdialenosť Zadajte stopy: 2 Zadajte palce: 9,8 Súčet vzdialeností = 15'-5,7 "

Kľúčové slovo typedef

typedefKľúčové slovo používame na vytvorenie aliasu pre dátové typy. Bežne sa používa so štruktúrami na zjednodušenie syntaxe deklarovania premenných.

Tento kód

štruktúrovaná vzdialenosť (int stopy; float inch;); int main () (štruktúrovaná vzdialenosť d1, d2;)

je ekvivalentné k

typedef struct Vzdialenosti (int stopy; float inch;) vzdialenosti; int main () (vzdialenosti d1, d2;)

Vnorené štruktúry

V rámci štruktúry môžete vytvárať štruktúry v programovaní C. Napríklad,

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

Predpokladajme, že chcete nastaviť obraz premennej num2 na 11. Tu je postup, ako to urobiť:

 num2.comp.imag = 11; 

Prečo štruktúrne v C?

Predpokladajme, že chcete uložiť informácie o osobe: jej meno, občianske číslo a plat. Na uloženie týchto informácií môžete vytvoriť rôzne premenné, meno, číslo a plat.

Čo ak potrebujete uložiť informácie o viac ako jednej osobe? Teraz musíte pre každú informáciu o osobe vytvoriť rôzne premenné: meno1, číslo1, plat1, meno2, číslo2, plat2 atď.

Lepším prístupom by bolo zhromaždiť všetky súvisiace informácie pod jednou Personštruktúrou mien a použiť ich pre každú osobu.

Viac o štruktúre

  • Štruktúry a ukazovatele
  • Predávanie štruktúr funkcii

Zaujímavé články...