C ++ struktur med eksempel

Indholdsfortegnelse:

Anonim

Hvad er en Struct i C ++?

En STRUCT er en C ++ - datastruktur, der kan bruges til at gemme elementer af forskellige datatyper. I C ++ er en struktur en brugerdefineret datatype. Strukturen opretter en datatype til gruppering af elementer af forskellige datatyper under en enkelt datatype.

For eksempel:

Antag at du skal gemme oplysninger om nogen, deres navn, statsborgerskab og alder. Du kan oprette variabler som navn, statsborgerskab og alder for at gemme dataene separat.

Du skal dog muligvis gemme oplysninger om mange personer i fremtiden. Det betyder, at der oprettes variabler for forskellige individer. For eksempel navn1, statsborgerskab1, alder1 osv. For at undgå dette er det bedre at oprette en struktur.

I denne C ++ tutorial lærer du:

  • Hvad er en Struct i C ++?
  • Hvornår skal jeg bruge en struktur?
  • C ++ Struct initialisering
  • Oprettelse af strukturinstanser
  • Adgang til Struct-medlemmer
  • Tip til struktur
  • Struktur som funktionsargument
  • Begrænsning af en C ++ struktur

Hvornår skal jeg bruge en struktur?

Her er nogle grunde til at bruge struktur i C ++.

  • Brug en struktur, når du skal gemme elementer af forskellige datatyper under en datatype.
  • C ++ structs er en værditype snarere end at være en referencetype. Brug en struktur, hvis du ikke har til hensigt at ændre dine data efter oprettelsen.

C ++ Struct initialisering

For at oprette en C ++ struktur bruger vi struct nøgleordet efterfulgt af en identifikator. Identifikatoren bliver navnet på strukturen. Her er syntaksen for oprettelse af en C ++ struktur:

Syntaks:

struct struct_name{// struct members}

I ovenstående syntaks har vi brugt struct-nøgleordet. Struct_name er navnet på strukturen.

Struct-medlemmerne tilføjes inden for krøllede seler. Disse medlemmer tilhører sandsynligvis forskellige datatyper.

For eksempel:

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

I ovenstående eksempel er Person en struktur med tre medlemmer. Medlemmerne inkluderer navn, statsborgerskab og alder. Et medlem er af char-datatype, mens de resterende 2 er heltal, når en struktur oprettes, tildeles hukommelse ikke. Hukommelse tildeles kun, når en variabel er føjet til strukturen.

Oprettelse af strukturinstanser

I ovenstående eksempel har vi oprettet en struktur med navnet Person. Vi kan oprette en strukturvariabel som følger:

Person p;

P er en strukturvariabel af typen Person. Vi kan bruge denne variabel til at få adgang til medlemmerne af strukturen.

Adgang til Struct-medlemmer

For at få adgang til struct-medlemmerne bruger vi forekomsten af ​​struct og dot (.) -Operatoren. For eksempel for at få adgang til medlemsalderen for struct Person:

p.age = 27;

Vi har fået adgang til medlemsalderen for struct Person ved hjælp af struct's instans, s. Vi har derefter indstillet værdien af ​​medlemsalderen til 27.

Eksempel 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;}

Produktion:

Her er et screenshot af koden:

Kode Forklaring:

  1. Inkluder iostream header-filen i vores program for at bruge de funktioner, der er defineret i den.
  2. Inkluder std navneområdet for at bruge dets klasser uden at kalde det.
  3. Opret en struktur med navnet Person.
  4. Begyndelsen på strukturen.
  5. Opret et struct-medlem med navnet statsborgerskab af typen heltal.
  6. Opret et struct-medlem med navnet alder af typen heltal.
  7. Slutningen af ​​strukturen kroppen.
  8. Ring til hovedfunktionen (). Programmets logik skal tilføjes inden for denne funktion.
  9. Opret en forekomst af strukturen Person, og giv den navnet p.
  10. Sæt værdien af ​​strukturmedborgerskab til 1.
  11. Indstil værdien af ​​strukturmedlemmets alder til 27.
  12. Udskriv værdien af ​​struct-medlemsborgerskabet på konsollen sammen med en anden tekst.
  13. Udskriv værdien af ​​struct-medlemsalderen på konsollen sammen med en anden tekst.
  14. Programmet skal returnere en værdi, hvis det kører med succes.
  15. Slut på hovedfunktionen ().

Tip til struktur

Det er muligt at oprette en markør, der peger på en struktur. Det svarer til, hvordan der oprettes markører, der peger på oprindelige datatyper som int, float, double osv. Bemærk, at en markør i C ++ gemmer en hukommelsesplacering.

Eksempel 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;}

Produktion:

Her er et screenshot af koden:

Kode Forklaring:

  1. Inkluder iostream header-filen i vores program for at kunne bruge dens funktioner.
  2. Inkluder std navneområdet i vores program for at bruge dets klasser uden at kalde det.
  3. Opret en struktur med navnet Længde.
  4. Start af strukturen i strukturen Længde.
  5. Opret et struct-medlem med navnet meter af heltal datatype.
  6. Opret et struct-medlem med navnet centimeter af typen heltal.
  7. Slutningen af ​​strukturen i strukturen Længde.
  8. Ring til hovedfunktionen ().
  9. Start af kroppen af ​​hovedfunktionen ().
  10. Opret en markørvariabel * ptr og normal variabel l af typen Længde.
  11. Gem adressen på variabel l i vores markørvariabel.
  12. Vis en meddelelse på konsollen, og bed brugeren om at indtaste værdien for variable målere.
  13. Læs den værdi, der er indtastet af brugeren via tastaturet. Medlemmenes funktionsmålere fås her ved hjælp af markørvariablen.
  14. Vis en meddelelse på konsollen, og bed brugeren om at indtaste værdien for variable centimeter.
  15. Læs den værdi, der er indtastet af brugeren via tastaturet. Medlemsfunktionens centimeter fås her ved hjælp af markørvariablen.
  16. Vis de læste værdier fra brugeren på konsollen sammen med en anden tekst.
  17. Programmet skal returnere en værdi efter vellykket udførelse.
  18. Slutningen af ​​hovedfunktionens () krop.

Struktur som funktionsargument

Du kan videregive en struktur til en funktion som et argument. Dette gøres på samme måde som at føre et normalt argument. Strukturvariablerne kan også overføres til en funktion. Et godt eksempel er, når du har brug for at vise værdierne for struct-medlemmer. Lad os demonstrere dette:

Eksempel 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<

Produktion:

Her er et screenshot af koden:

Kode Forklaring:

  1. Inkluder iostream header-filen i vores fil. Vi bruger derefter dens funktioner uden at få fejl.
  2. Inkluder std navneområdet i vores program for at bruge dets klasser. Vi behøver ikke at kalde navneområdet for at bruge dets klasser.
  3. Opret en struktur med navnet Person.
  4. Start af kroppen til strukturen Person.
  5. Opret et medlem af struct Person. Medlemmet hedder statsborgerskab og er af typen heltal.
  6. Opret et medlem af struct Person. Medlemmet hedder alder og er af typen heltal.
  7. Slutningen af ​​strukturen Person.
  8. Opret en funktion, der tager forekomsten af ​​struct Person, p, som argumentet.
  9. Ring til hovedfunktionen. {Markerer begyndelsen på kroppen af ​​hovedfunktionen ().
  10. Opret en forekomst af struct Person, og giv den navnet p.
  11. Få adgang til strukturmedlems variable statsborgerskab ved hjælp af forekomsten af ​​strukturen, p og tildel den værdien 1.
  12. Få adgang til variablen alder for strukturmedlem ved hjælp af forekomsten af ​​strukturen, p og tildel den værdien 27.
  13. Kald funktionen og videregiver den til forekomsten af ​​strukturen Person, p, som argumentet.
  14. Funktionen skal returnere en værdi efter vellykket udførelse.
  15. Slutningen af ​​hovedfunktionens () krop.
  16. Opret funktionens hoveddel.
  17. Starten af ​​funktionens krop.
  18. Få adgang til værdien for struct-medborgerskab og udskriv den på konsollen sammen med anden tekst.
  19. Få adgang til strukturmedlems aldersværdi og udskriv den på konsollen sammen med anden tekst.
  20. Slutningen af ​​funktionsorganet.

Begrænsning af en C ++ struktur

Følgende er begrænsningerne af strukturer:

  • Struct-datatypen kan ikke behandles som indbyggede datatyper.
  • Operatører som + - og andre kan ikke bruges på strukturvariabler.
  • Strukturer understøtter ikke skjulning af data. Medlemmerne af en struktur kan tilgås af enhver funktion uanset dens omfang.
  • Statiske medlemmer kan ikke erklæres inde i strukturen.
  • Konstruktører kan ikke oprettes inde i en struktur.

Resumé:

  • En struct er en datastruktur, der gemmer dataelementer, der tilhører forskellige typer.
  • Mens en matrix gemmer dataelementer af en lignende type, lagrer en struct dataelementer af forskellige typer.
  • En struktur skal bruges, når dataelementerne ikke forventes at ændre værdi.
  • Medlemmerne af en struktur fås ved hjælp af operatoren dot (.).
  • Vi er nødt til at oprette en instans af strukturen.
  • For at oprette en C ++ struct bruger vi struct nøgleordet.
  • Markører, der peger på en struktur, oprettes på samme måde som, hvordan der oprettes markører, der peger på almindelige typer.
  • En struktur kan sendes som et argument til en funktion på samme måde som almindelige funktioner sendes.