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 struct
ključ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 Person
je 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 Person
stvaraju 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.
.
- Član operater->
- 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
typedef
Ključ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 Person
strukturom i koristiti je za svaku osobu.
Više o struct
- Strukture i pokazivači
- Prosljeđivanje struktura funkciji