C struktuur (struktuurid)

Selles õpetuses saate teada C-programmeerimise struktuuritüüpidest. Õpid näidete abil struktuure määratlema ja kasutama.

C-programmeerimisel on struktuur (või struktuur) muutujate kogu (võib olla erinevat tüüpi) ühe nime all.

Kuidas määratleda struktuure?

Enne struktuurimuutujate loomist peate määratlema selle andmetüübi. Struktuuri määratlemiseks kasutatakse structmärksõna.

Struktuuri süntaks

 struct structureName (dataType liige1; dataType liige2; …); 

Siin on näide:

 struct Isik (char nimi (50); int citNo; uupalk;); 

Siin struct Personmääratletakse tuletatud tüüp . Nüüd saate seda tüüpi muutujaid luua.

Looge struktuurimuutujad

Kui struktuuri tüüp on deklareeritud, ei eraldata mälu ega mälu. Teatud struktuuritüübi mälu eraldamiseks ja sellega töötamiseks peame looma muutujad.

Struktuurimuutujate loomine toimub järgmiselt.

struct Isik (char nimi (50); int citNo; uupalk;); int main () (struct Isik isik1, inimene2, p (20); tagastama 0;)

Teine võimalus struktuurimuutuja loomiseks on:

 struct Isik (char nimi (50); int citNo; uupalk;) person1, person2, p (20); 

Mõlemal juhul luuakse kaks muutujat person1, person2 ja massiivi muutuja p, millel on 20 tüüpi elementi struct Person.

Juurdepääs struktuuri liikmetele

Struktuuri liikmetele juurdepääsemiseks kasutatakse kahte tüüpi operaatoreid.

  1. . - liikmeoperaator
  2. -> - Struktuuriosuti operaator (arutatakse järgmises õpetuses)

Oletame, et soovite pääseda inimese palgale2. Siit saate teada, kuidas saate seda teha.

 inimene2.palk

Näide: lisage kaks vahemaad

 // 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äljund

 1. kaugus Sisestage jalad: 12 Sisestage toll: 7.9 2. Vahemaa sisestage jalad: 2 Sisestage toll: 9.8 Vahemaade summa = 15'-5.7 "

Märksõna typedef

Kasutame typedefmärksõna andmetüüpide varjunime loomiseks. Seda kasutatakse koos struktuuridega muutujate deklareerimise süntaksite lihtsustamiseks.

See kood

struct Kaugus (int jalad; ujuk tolli;); int main () (strukturaalne kaugus d1, d2;)

on samaväärne

typedef struct Vahemaa (int jalad; ujuktoll;) kaugused; int main () (kaugused d1, d2;)

Pesastatud struktuurid

C-programmeerimisega saate luua struktuuri struktuure. Näiteks,

struct kompleks (int imag; float real;); struct number (struct complex comp; int täisarvud;) num1, num2;

Oletame, et soovite muuta muutuja num2 pildi väärtuseks 11. Selleks saate seda teha järgmiselt.

 num2.komp.imag = 11; 

Miks struktureeritakse C-s?

Oletame, et soovite salvestada teavet inimese kohta: tema nimi, kodakondsusnumber ja palk. Selle teabe salvestamiseks saate luua erinevad muutujad, nimed, citNo ja palk.

Mis siis, kui peate salvestama rohkem kui ühe inimese teavet? Nüüd peate looma inimese kohta iga teabe jaoks erinevad muutujad: nimi1, citNo1, palk1, nimi2, citNo2, palk2 jne.

Parem lähenemine oleks kogu seotud teabe kogumine ühe Personnimestruktuuri all ja selle kasutamine iga inimese jaoks.

Veel struktuurist

  • Konstruktsioonid ja näpunäited
  • Struktuuride edastamine funktsioonile

Huvitavad Artiklid...