C ++ struktur med eksempel

Innholdsfortegnelse:

Anonim

Hva er en Struct i C ++?

En STRUCT er en C ++ datastruktur som kan brukes til å lagre elementer av forskjellige datatyper. I C ++ er en struktur en brukerdefinert datatype. Strukturen oppretter en datatype for å gruppere elementer av forskjellige datatyper under en enkelt datatype.

For eksempel:

Anta at du trenger å lagre informasjon om noen, deres navn, statsborgerskap og alder. Du kan opprette variabler som navn, statsborgerskap og alder for å lagre dataene separat.

Du kan imidlertid trenge å lagre informasjon om mange personer i fremtiden. Det betyr at variabler for forskjellige individer vil bli opprettet. For eksempel navn1, statsborgerskap1, alder1 osv. For å unngå dette er det bedre å lage en struktur.

I denne C ++ opplæringen vil du lære:

  • Hva er en Struct i C ++?
  • Når skal jeg bruke en struktur?
  • Initialisering av C ++ struktur
  • Opprette Struct Instances
  • Få tilgang til Struct-medlemmer
  • Pekere til struktur
  • Struktur som funksjonsargument
  • Begrensning av en C ++ struktur

Når skal jeg bruke en struktur?

Her er noen grunner til å bruke struktur i C ++.

  • Bruk en struktur når du trenger å lagre elementer av forskjellige datatyper under en datatype.
  • C ++ structs er en verditype i stedet for å være en referansetype. Bruk en struktur hvis du ikke har tenkt å endre dataene dine etter opprettelsen.

Initialisering av C ++ struktur

For å lage en C ++ struktur bruker vi struct nøkkelordet, etterfulgt av en identifikator. Identifikatoren blir navnet på strukturen. Her er syntaksen for oppretting av en C ++ struktur:

Syntaks:

struct struct_name{// struct members}

I syntaksen ovenfor har vi brukt struct-nøkkelordet. Struct_name er navnet på strukturen.

Struct-medlemmene legges til i krøllete bukseseler. Disse medlemmene tilhører sannsynligvis forskjellige datatyper.

For eksempel:

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

I eksemplet ovenfor er Person en struktur med tre medlemmer. Medlemmene inkluderer navn, statsborgerskap og alder. Ett medlem er av char-datatype, mens de resterende 2 er heltall når en struktur opprettes, tildeles ikke minne. Minne tildeles bare etter at en variabel er lagt til strukturen.

Opprette Struct Instances

I eksemplet ovenfor har vi opprettet en struktur som heter Person. Vi kan lage en strukturvariabel som følger:

Person p;

P er en strukturvariabel av typen Person. Vi kan bruke denne variabelen for å få tilgang til medlemmene i strukturen.

Få tilgang til Struct-medlemmer

For å få tilgang til struct-medlemmene bruker vi forekomsten av struct og dot (.) -Operatøren. For eksempel for å få tilgang til medlemsalderen til struct Person:

p.age = 27;

Vi har fått tilgang til medlemsalderen til struct Person ved hjelp av struct's forekomst, s. Vi har da satt verdien av medlemsalderen til 27 år.

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

Produksjon:

Her er et skjermbilde av koden:

Kode Forklaring:

  1. Ta med iostream header-filen i programmet vårt for å bruke funksjonene som er definert i den.
  2. Inkluder std navneområdet for å bruke klassene sine uten å kalle det.
  3. Lag en struktur med navnet Person.
  4. Begynnelsen på strukturen kroppen.
  5. Opprett et struct-medlem som heter statsborgerskap av typen heltall.
  6. Opprett et strukturmedlem med navnet alder av typen heltall.
  7. Slutten på strukturen kroppen.
  8. Ring til hovedfunksjonen (). Programlogikken skal legges til i kroppen til denne funksjonen.
  9. Opprett en forekomst av strukturen Person og gi den navnet s.
  10. Sett verdien av struct medlemsborgerskap til 1.
  11. Sett verdien på strukturen til 27 år.
  12. Skriv ut verdien av struct-medlemskapet på konsollen sammen med en annen tekst.
  13. Skriv ut verdien av strukturen på medlemmene på konsollen sammen med annen tekst.
  14. Programmet skal returnere en verdi hvis det kjører vellykket.
  15. Slutt på hovedfunksjonen ().

Pekere til struktur

Det er mulig å lage en peker som peker mot en struktur. Det ligner på hvordan pekere som peker mot innfødte datatyper som int, float, double, etc. opprettes. Merk at en peker i C ++ vil lagre en minneplassering.

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

Produksjon:

Her er et skjermbilde av koden:

Kode Forklaring:

  1. Ta med iostream header-filen i programmet vårt for å kunne bruke funksjonene.
  2. Inkluder std navneområdet i programmet vårt for å bruke klassene uten å kalle det.
  3. Lag en struktur som heter Lengde.
  4. Start av kroppen til strukturen Lengde.
  5. Opprett et struct-medlem som heter meter av heltall datatype.
  6. Lag et struct-medlem med navnet centimeter av typen heltall.
  7. Slutten på kroppen til strukturen Lengde.
  8. Ring til hovedfunksjonen ().
  9. Start av kroppen til hovedfunksjonen ().
  10. Lag en pekervariabel * ptr og normalvariabel l av typen Lengde.
  11. Lagre adressen til variabel l i pekervariabelen.
  12. Vis en melding på konsollen, og be brukeren om å angi verdien for variable målere.
  13. Les verdien du har angitt av brukeren via tastaturet. Medlemmets funksjonsmålere er her tilgjengelig ved hjelp av pekervariabelen.
  14. Vis en melding på konsollen, og be brukeren om å angi verdien for variable centimeter.
  15. Les verdien du har angitt av brukeren via tastaturet. Medlemsfunksjonssentimeterene er her tilgjengelig ved hjelp av pekervariabelen.
  16. Vis verdiene som er lest fra brukeren på konsollen sammen med annen tekst.
  17. Programmet må returnere en verdi etter vellykket gjennomføring.
  18. Slutten av kroppen til hovedfunksjonen ().

Struktur som funksjonsargument

Du kan overføre en struktur til en funksjon som et argument. Dette gjøres på samme måte som å føre et normalt argument. Strukturvariablene kan også overføres til en funksjon. Et godt eksempel er når du trenger å vise verdiene til struct-medlemmer. La oss 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<

Produksjon:

Her er et skjermbilde av koden:

Kode Forklaring:

  1. Inkluder iostream header-filen i filen vår. Vi vil da bruke funksjonene uten å få feil.
  2. Inkluder std navneområdet i programmet vårt for å bruke klassene. Vi trenger ikke ringe navneområdet for å bruke klassene.
  3. Lag en struktur med navnet Person.
  4. Start av kroppen til strukturen Person.
  5. Lag et medlem av struct Person. Medlemmet heter statsborgerskap og er av heltall.
  6. Lag et medlem av struct Person. Medlemmet heter alder og er av typen heltall.
  7. Slutten av kroppen til struct Person.
  8. Lag en funksjon som tar forekomsten av struct Person, p, som argumentet.
  9. Ring hovedfunksjonen. {Markerer begynnelsen på kroppen til hovedfunksjonen ().
  10. Opprett en forekomst av struct Person og gi den navnet s.
  11. Få tilgang til struct-medlemets variable statsborgerskap ved å bruke forekomsten av struct, p, og tildele verdien 1.
  12. Få tilgang til struct-medlemsvariabelalderen ved hjelp av forekomsten av struct, p, og tildel verdien 27.
  13. Kall funksjonen og viderefør den til forekomsten av strukturen Person, p, som argumentet.
  14. Funksjonen må returnere en verdi etter vellykket gjennomføring.
  15. Slutten av kroppen til hovedfunksjonen ().
  16. Lag hoveddelen av funksjonen.
  17. Starten på kroppens funksjon.
  18. Få tilgang til struct-medlemskapets statsverdi og skriv den ut på konsollen sammen med annen tekst.
  19. Få tilgang til aldersverdien for strukturmedlem og skriv den ut på konsollen sammen med annen tekst.
  20. Slutten av funksjonskroppen.

Begrensning av en C ++ struktur

Følgende er begrensningene for strukturer:

  • Struct-datatypen kan ikke behandles som innebygde datatyper.
  • Operatører som + - og andre kan ikke brukes på strukturvariabler.
  • Strukturer støtter ikke skjuling av data. Medlemmene av en struktur er tilgjengelig for enhver funksjon uavhengig av omfanget.
  • Statiske medlemmer kan ikke erklæres inne i strukturen.
  • Konstruktører kan ikke opprettes inne i en struktur.

Sammendrag:

  • En struktur er en datastruktur som lagrer dataelementer som tilhører forskjellige typer.
  • Mens en matrise lagrer dataelementer av samme type, lagrer en struktur dataelementer av forskjellige typer.
  • En struktur bør brukes når dataelementene ikke forventes å endre verdi.
  • Medlemmene av en struktur er tilgjengelig ved hjelp av punkt (.) -Operatøren.
  • Vi må lage en forekomst av strukturen.
  • For å lage en C ++ struct bruker vi struct-nøkkelordet.
  • Pekere som peker på en struktur, opprettes på samme måte som hvordan pekere som peker på vanlige typer opprettes.
  • En struktur kan sendes som et argument til en funksjon på samme måte som vanlige funksjoner overføres.