Struktura C ++ s primjerom

Sadržaj:

Anonim

Što je struktura u C ++-u?

Struct je C ++ struktura podataka koja se može koristiti za pohranu zajedno elemente različite vrste podataka. U C ++-u je struktura korisnički definirani tip podataka. Struktura stvara tip podataka za grupiranje stavki različitih tipova podataka u jedan tip podataka.

Na primjer:

Pretpostavimo da trebate pohraniti podatke o nekome, njegovom imenu, državljanstvu i dobi. Možete stvoriti varijable kao što su ime, državljanstvo i dob za posebno pohranjivanje podataka.

Međutim, u budućnosti ćete možda trebati pohranjivati ​​podatke o mnogim osobama. To znači da će se stvoriti varijable za različite pojedince. Na primjer, ime1, državljanstvo1, dob1 itd. Da biste to izbjegli, bolje je stvoriti strukturu.

U ovom C ++ tutorialu naučit ćete:

  • Što je struktura u C ++-u?
  • Kada koristiti strukturu?
  • Inicijalizacija strukture C ++
  • Stvaranje instanci struktura
  • Pristup članovima Strukture
  • Pokazatelji na strukturu
  • Struktura kao argument funkcije
  • Ograničenje strukture C ++

Kada koristiti strukturu?

Evo nekoliko razloga korištenja strukture u C ++-u.

  • Koristite strukturu kada trebate pohraniti elemente različitih vrsta podataka u jedan tip podataka.
  • C ++ strukture su vrijednosni tip, a ne referentni tip. Koristite strukturu ako ne namjeravate mijenjati podatke nakon stvaranja.

Inicijalizacija strukture C ++

Da bismo stvorili strukturu C ++, koristimo ključnu riječ struct, nakon koje slijedi identifikator. Identifikator postaje naziv strukture. Evo sintakse za stvaranje C ++ strukture:

Sintaksa:

struct struct_name{// struct members}

U gornjoj sintaksi koristili smo ključnu riječ struct. Ime_strukture naziv je strukture.

Članovi strukture dodaju se u vitičaste zagrade. Ti članovi vjerojatno pripadaju različitim vrstama podataka.

Na primjer:

struct Person{char name[30];int citizenship;int age;}

U gornjem primjeru, Osoba je struktura s tri člana. Članovi uključuju ime, državljanstvo i dob. Jedan je član tipa podataka char, dok su preostala 2 cjelobrojne vrijednosti kad se kreira struktura, a memorija se ne dodjeljuje. Memorija se dodjeljuje tek nakon dodavanja varijable u strukturu.

Stvaranje instanci struktura

U gornjem primjeru stvorili smo strukturu nazvanu Osoba. Varijablu struct možemo stvoriti na sljedeći način:

Person p;

P je strukturna varijabla tipa Person. Ovu varijablu možemo koristiti za pristup članovima strukture.

Pristup članovima Strukture

Da bismo pristupili članovima struct, koristimo instancu struct i dot (.) Operatora. Na primjer, da biste pristupili dobi člana struct Person:

p.age = 27;

Pristupili smo dobi članova struct Person pomoću instance struct, str. Tada smo vrijednost starosti člana postavili na 27.

Primjer 1:

#include using namespace std;struct Person{int citizenship;int age;};int main(void) {struct Person p;p.citizenship = 1;p.age = 27;cout << "Person citizenship: " << p.citizenship << endl;cout << "Person age: " << p.age << endl;return 0;}

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključite datoteku zaglavlja iostream u naš program da biste koristili funkcije definirane u njemu.
  2. Uključite std prostor imena da biste koristili njegove klase bez pozivanja.
  3. Stvorite strukturu s imenom Osoba.
  4. Početak strukturnog tijela.
  5. Stvorite člana strukture s imenom državljanstvo cijelog broja.
  6. Stvorite člana strukture s imenom age of type integer.
  7. Kraj tijela struct.
  8. Pozovite glavnu () funkciju. Logiku programa treba dodati unutar tijela ove funkcije.
  9. Stvorite instancu strukture Person i dajte joj ime str.
  10. Postavite vrijednost državljanstva strukturnog člana na 1.
  11. Postavite vrijednost dobi člana strukture na 27.
  12. Ispišite vrijednost državljanstva člana strukture na konzoli uz neki drugi tekst.
  13. Ispišite vrijednost starosti člana struct na konzoli uz neki drugi tekst.
  14. Ako se uspješno izvodi, program bi trebao vratiti vrijednost.
  15. Kraj glavne () funkcije.

Pokazatelji na strukturu

Moguće je stvoriti pokazivač koji pokazuje na strukturu. Slično je tome kako se stvaraju pokazivači koji upućuju na izvorne tipove podataka poput int, float, double, itd. Imajte na umu da će pokazivač u C ++u pohraniti memorijsko mjesto.

Primjer 2:

#include using namespace std;struct Length{int meters;float centimeters;};int main(){Length *ptr, l;ptr = &l;cout << "Enter meters: ";cin >> (*ptr).meters;cout << "Enter centimeters: ";cin >> (*ptr).centimeters;cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters";return 0;}

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključite datoteku zaglavlja iostream u naš program kako biste koristili njegove funkcije.
  2. Uključite std prostor imena u naš program da koristi njegove klase bez poziva.
  3. Stvorite strukturu nazvanu Length.
  4. Početak tijela strukture Duljina.
  5. Stvorite člana strukture s imenom metri cjelobrojnog tipa podataka.
  6. Stvorite člana strukture s imenom centimetri cijelog broja.
  7. Kraj tijela strukture Duljina.
  8. Pozovite glavnu () funkciju.
  9. Početak tijela glavne () funkcije.
  10. Stvorite varijablu pokazivača * ptr i normalnu varijablu l tipa Length.
  11. Spremite adresu varijable l u našu pokazivačku varijablu.
  12. Na konzoli prikažite poruku u kojoj se traži da korisnik unese vrijednost za promjenjive mjerače.
  13. Očitajte vrijednost koju je korisnik unio putem tipkovnice. Ovdje se pristupa mjeračima funkcije člana pomoću varijable pokazivača.
  14. Na konzoli prikažite poruku koja traži od korisnika da unese vrijednost za promjenljive centimetre.
  15. Očitajte vrijednost koju je korisnik unio putem tipkovnice. Ovdje se pristupa funkciji člana centimetara pomoću varijable pokazivača.
  16. Prikažite vrijednosti pročitane od korisnika na konzoli uz neki drugi tekst.
  17. Program mora vratiti vrijednost nakon uspješnog izvršavanja.
  18. Kraj tijela glavne () funkcije.

Struktura kao argument funkcije

Strukturu možete proslijediti funkciji kao argument. To se radi na isti način kao i prosljeđivanje normalnog argumenta. Varijable struct mogu se također proslijediti funkciji. Dobar je primjer kada trebate prikazati vrijednosti članova strukture. Pokažimo ovo:

Primjer 3:

#includeusing namespace std;struct Person{int citizenship;int age;};void func(struct Person p);int main(){struct Person p;p.citizenship = 1;p.age = 27;func(p);return 0;}void func(struct Person p){cout << " Person citizenship: " << p.citizenship<

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključite datoteku zaglavlja iostream u našu datoteku. Tada ćemo koristiti njegove funkcije bez pogrešaka.
  2. Uključite std prostor imena u naš program da biste koristili njegove klase. Nećemo trebati nazivati ​​prostor imena da bismo koristili njegove klase.
  3. Stvorite strukturu s imenom Osoba.
  4. Početak tijela strukturne Osobe.
  5. Stvorite člana struct Person. Član je imenovan državljanstvom i cijelog je tipa.
  6. Stvorite člana struct Person. Član je imenovan dob i cijelog je tipa.
  7. Kraj tijela strukturne Osobe.
  8. Stvorite funkciju koja uzima argument argumenta struct Person, p.
  9. Pozovite glavnu funkciju. Oznaka {označava početak tijela main () funkcije.
  10. Stvorite instancu struct Person i dajte joj ime str.
  11. Pristupite varijabli državljanstva člana struct koristeći instancu struct, p i dodijelite mu vrijednost 1.
  12. Pristupite varijabli age struct struct pomoću instance struct, p i dodijelite joj vrijednost 27.
  13. Pozovite funkciju i proslijedite joj instancu struct Person, p, kao argument.
  14. Funkcija mora vratiti vrijednost nakon uspješnog izvršavanja.
  15. Kraj tijela glavne () funkcije.
  16. Stvorite tijelo funkcije.
  17. Početak tijela funkcije.
  18. Pristupite vrijednosti državljanstva člana struct i ispišite ga na konzoli zajedno s drugim tekstom.
  19. Pristupite vrijednosti dobi člana strukture i ispišite je na konzoli zajedno s drugim tekstom.
  20. Kraj tijela funkcije.

Ograničenje strukture C ++

Slijede ograničenja struktura:

  • Tip podataka struct ne može se tretirati kao ugrađeni tip podataka.
  • Operatori poput + - i ostali ne mogu se koristiti na strukturnim varijablama.
  • Strukture ne podržavaju skrivanje podataka. Članovima strukture može pristupiti bilo koja funkcija bez obzira na njezin opseg.
  • Statični članovi ne mogu se deklarirati unutar tijela strukture.
  • Konstruktori se ne mogu kreirati unutar strukture.

Sažetak:

  • Struktura je struktura podataka koja pohranjuje elemente podataka koji pripadaju različitim vrstama.
  • Dok niz pohranjuje elemente podataka sličnog tipa, struct pohranjuje elemente podataka različitih tipova.
  • Strukturu treba koristiti kada se ne očekuje da će elementi podataka promijeniti vrijednost.
  • Članovima strukture pristupa se pomoću operatora dot (.).
  • Moramo stvoriti instancu strukture.
  • Da bismo stvorili strukturu C ++, koristimo ključnu riječ struct.
  • Pokazivači koji upućuju na strukturu stvaraju se slično kao što se stvaraju pokazivači koji upućuju na redovite tipove.
  • Struktura se može proslijediti kao argument funkciji na isti način na koji se prosljeđuju obične funkcije.