C struktura (strukture)

U ovom vodiču naučit ćete o vrstama struktura u C programiranju. Naučit ćete definirati i koristiti strukture uz pomoć primjera.

U C programiranju, struktura (ili struktura) je zbirka varijabli (mogu biti različitih vrsta) pod jednim imenom.

Kako definirati strukture?

Da biste mogli stvoriti strukturne varijable, morate definirati njezin tip podataka. Za definiranje strukture koristi se structključna riječ.

Sintaksa struct

 ime strukture struct (dataType member1; dataType member2;…); 

Evo primjera:

 struct Person (ime char (50); int citNo; plutajuća plaća;); 

Ovdje struct Personje definiran izvedeni tip . Sada možete stvoriti varijable ove vrste.

Stvorite strukturne varijable

Kada se deklarira vrsta struct, ne dodjeljuje se memorija ili memorija. Da bismo dodijelili memoriju određenog tipa strukture i radili s njom, moramo stvoriti varijable.

Evo kako stvaramo strukturne varijable:

struct Person (ime char (50); int citNo; plutajuća plaća;); int main () (struct Osoba person1, person2, p (20); return 0;)

Drugi način stvaranja strukturne varijable je:

 struct Person (ime char (50); int citNo; plutajuća plaća;) person1, person2, p (20); 

U oba slučaja struct Personstvaraju se dvije varijable person1, person2 i varijabla niza p koja ima 20 elemenata tipa .

Pristup članovima strukture

Postoje dvije vrste operatora koji se koriste za pristup članovima strukture.

  1. . - Član operater
  2. -> - Operator pokazivača strukture (bit će razmotren u sljedećem vodiču)

Pretpostavimo da želite pristupiti plaći osobe2. Evo kako to možete učiniti.

 osoba2.plata

Primjer: dodajte dvije udaljenosti

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

Izlaz

 1. udaljenost Unesite stope: 12 Unesite inč: 7.9 2. udaljenost Unesite noge: 2 Unesite inč: 9.8 Zbir udaljenosti = 15'-5.7 "

Typedef ključne riječi

typedefKljučnu riječ koristimo za izradu zamjenskog imena za tipove podataka. Obično se koristi sa strukturama za pojednostavljivanje sintakse deklariranja varijabli.

Ovaj kod

struct Udaljenost (int stope; plutajući inč;); int main () (struct Udaljenost d1, d2;)

je ekvivalentan

typedef struct Udaljenost (int stopala; plutajući inč;) udaljenosti; int main () (udaljenosti d1, d2;)

Ugniježđene strukture

Možete stvoriti strukture unutar strukture u C programiranju. Na primjer,

strukturni kompleks (int imag; float real;); broj strukture (struct complex comp; int integers;) num1, num2;

Pretpostavimo da želite postaviti imag varijable num2 na 11. Evo kako to možete učiniti:

 num2.comp.imag = 11; 

Zašto strukture u C?

Pretpostavimo da želite pohraniti podatke o osobi: njezino ime, državljanstvo i plaću. Možete stvoriti različite varijable naziv, citNo i plaću za pohranu tih podataka.

Što ako trebate pohraniti podatke više osoba? Sada morate stvoriti različite varijable za svaku informaciju po osobi: ime1, citNo1, plaća1, ime2, citNo2, plaća2 itd.

Bolji pristup bio bi imati zbirku svih povezanih podataka pod jedinstvenom imenskom Personstrukturom i koristiti je za svaku osobu.

Više o struct

  • Strukture i pokazivači
  • Prosljeđivanje struktura funkciji

Zanimljivi članci...