C ++ Struct su pavyzdžiu

Turinys:

Anonim

Kas yra „C ++“ struktūra?

Struct yra C ++ duomenų struktūra, kuri gali būti naudojama saugoti kartu elementus skirtingų duomenų tipų. C ++, struktūra yra vartotojo apibrėžtas duomenų tipas. Struktūra sukuria duomenų tipą skirtingų duomenų tipų elementams grupuoti pagal vieną duomenų tipą.

Pavyzdžiui:

Tarkime, kad turite saugoti informaciją apie ką nors, jo vardą, pilietybę ir amžių. Norėdami sukurti duomenis atskirai, galite sukurti tokius kintamuosius kaip vardas, pilietybė ir amžius.

Tačiau ateityje gali tekti saugoti informaciją apie daugelį asmenų. Tai reiškia, kad bus sukurti skirtingų asmenų kintamieji. Pavyzdžiui, vardas1, pilietybė1, amžius1 ir kt. Norėdami to išvengti, geriau sukurti struktūrą.

Šioje C ++ pamokoje sužinosite:

  • Kas yra „C ++“ struktūra?
  • Kada naudoti struktūrą?
  • C ++ struktūros inicijavimas
  • Struktūrinių egzempliorių kūrimas
  • Prieiga prie struktūrinių narių
  • Struktūros rodikliai
  • Struktūra kaip funkcijos argumentas
  • C ++ struktūros apribojimas

Kada naudoti struktūrą?

Štai keletas priežasčių, kodėl naudojama struktūra C ++.

  • Naudokite struktūrą, kai reikia laikyti skirtingų tipų duomenų elementus viename duomenų tipe.
  • C ++ struktūros yra vertės tipas, o ne referencinis tipas. Jei sukūrę neketinate keisti duomenų, naudokite struktūrą.

C ++ struktūros inicijavimas

Norėdami sukurti C ++ struktūrą, naudojame struktūros raktinį žodį, po kurio nurodomas identifikatorius. Identifikatorius tampa struktūros pavadinimu. Čia yra C ++ struktūros sukūrimo sintaksė:

Sintaksė:

struct struct_name{// struct members}

Pirmiau pateiktoje sintaksėje mes naudojome struktūros raktinį žodį. Struct_name yra struktūros pavadinimas.

Struktūriniai nariai pridedami garbanotose petnešose. Šie nariai tikriausiai priklauso skirtingiems duomenų tipams.

Pavyzdžiui:

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

Ankstesniame pavyzdyje Asmuo yra struktūra, turinti tris narius. Nariai apima vardą, pavardę, pilietybę ir amžių. Vienas narys yra char tipo duomenų, o likusieji 2 yra sveiki skaičiai, kai sukuriama struktūra, atmintis neskiriama. Atmintis paskirstoma tik po to, kai į struktūrą įtraukiamas kintamasis.

Struktūrinių egzempliorių kūrimas

Ankstesniame pavyzdyje mes sukūrėme struktūrą pavadinimu Asmuo. Struktūrinį kintamąjį galime sukurti taip:

Person p;

P yra asmens tipo struktūrinis kintamasis. Šį kintamąjį galime naudoti norėdami pasiekti struktūros narius.

Prieiga prie struktūrinių narių

Norėdami pasiekti struktūros narius, mes naudojame struktūros egzempliorių ir taško (.) Operatorių. Pvz., Norėdami pasiekti „Struct Person“ nario amžių:

p.age = 27;

Mes pasiekėme nario amžių, naudodami struktūros egzempliorių, p. Tada mes nustatėme nario amžiaus vertę į 27.

1 pavyzdys:

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

Išvestis:

Čia yra kodo ekrano kopija:

Kodo paaiškinimas:

  1. Įtraukite „iostream“ antraštės failą į mūsų programą, kad galėtumėte naudoti jame apibrėžtas funkcijas.
  2. Įtraukite standartinę vardų sritį, kad galėtumėte naudoti jos klases jos nepaskambinę.
  3. Sukurkite struktūrą pavadinimu Asmuo.
  4. Struktūrinio kūno pradžia.
  5. Sukurkite struktūrinį narį, pavadintą sveikojo tipo pilietybe.
  6. Sukurkite struktūros narį, pavadintą amžiaus sveikasis skaičius.
  7. Struktūrinio kūno pabaiga.
  8. Iškvieskite pagrindinę () funkciją. Programos logika turėtų būti įtraukta į šios funkcijos tekstą.
  9. Sukurkite struktūros Asmens egzempliorių ir suteikdami jam vardą p.
  10. Nustatykite struktūrizuoto nario pilietybės vertę į 1.
  11. Nustatykite struktūrizuoto nario amžiaus vertę į 27.
  12. Atsispausdinkite struktūrizuoto nario pilietybės vertę konsolėje kartu su kitu tekstu.
  13. Atsispausdinkite struktūros nario amžiaus vertę konsolėje kartu su kitu tekstu.
  14. Jei programa sėkmingai vykdoma, programa turėtų grąžinti vertę.
  15. Pagrindinės () funkcijos pabaiga.

Struktūros rodikliai

Galima sukurti rodyklę, nukreipiančią į struktūrą. Tai panašu į tai, kaip kuriami rodikliai, nukreipiantys į vietinius duomenų tipus, tokius kaip int, float, double ir kt. Atminkite, kad žymeklis C ++ išsaugos atminties vietą.

2 pavyzdys:

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

Išvestis:

Čia yra kodo ekrano kopija:

Kodo paaiškinimas:

  1. Įtraukite „iostream“ antraštės failą į mūsų programą, kad galėtumėte naudoti jo funkcijas.
  2. Įtraukite standartinę vardų sritį į mūsų programą, kad galėtumėte naudoti jos klases nepaskambinę.
  3. Sukurkite struktūrą pavadinimu Ilgis.
  4. Struktūros ilgio kūno pradžia.
  5. Sukurkite struktūros narį, pavadintą skaitmenų duomenų tipo metrais.
  6. Sukurkite struktūros narį, pavadintą sveikojo tipo centimetrais.
  7. Struktūros ilgio kūno pabaiga.
  8. Iškvieskite pagrindinę () funkciją.
  9. Pagrindinės () funkcijos kūno pradžia.
  10. Sukurkite žymeklio kintamąjį * ptr ir normalų ilgio kintamąjį l.
  11. Kintamojo l adresą išsaugokite žymeklio kintamajame.
  12. Parodykite pranešimą konsolėje, prašydami vartotojo įvesti kintamų skaitiklių vertę.
  13. Perskaitykite vartotojo įvestą vertę klaviatūra. Narių funkcijų skaitikliai čia pasiekiami naudojant rodyklės kintamąjį.
  14. Parodykite pranešimą konsolėje, prašydami vartotojo įvesti kintamų centimetrų vertę.
  15. Perskaitykite vartotojo įvestą vertę klaviatūra. Nario funkcijos centimetrai čia pasiekiami naudojant rodyklės kintamąjį.
  16. Pateikite iš vartotojo perskaitytas vertes konsolėje kartu su kitu tekstu.
  17. Sėkmingai įvykdžius, programa turi grąžinti vertę.
  18. Pagrindinės () funkcijos kūno pabaiga.

Struktūra kaip funkcijos argumentas

Galite perduoti struktūrą funkcijai kaip argumentą. Tai daroma taip pat, kaip ir įprasto argumento perdavimas. Struktūriniai kintamieji taip pat gali būti perduoti funkcijai. Geras pavyzdys yra tas, kai reikia parodyti struktūros narių reikšmes. Parodykime tai:

3 pavyzdys:

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

Išvestis:

Čia yra kodo ekrano kopija:

Kodo paaiškinimas:

  1. Įtraukite „iostream“ antraštės failą į mūsų failą. Tada mes naudosime jo funkcijas negaudami klaidų.
  2. Įtraukite standartinę vardų sritį į mūsų programą, kad galėtumėte naudoti jos klases. Mums nereikės kviesti vardų srities, kad galėtume naudoti jos klases.
  3. Sukurkite struktūrą pavadinimu Asmuo.
  4. Struktūrinio Asmens kūno pradžia.
  5. Sukurkite struktūros Asmens narį. Narys pavadintas pilietybe ir yra sveikasis skaičius.
  6. Sukurkite struktūros Asmens narį. Narys yra pavadintas amžiumi ir yra sveiko skaičiaus.
  7. Struktūrinio asmens kūno pabaiga.
  8. Sukurkite funkciją, kurios argumentu laikysime struktūros Asmuo p.
  9. Iškvieskite pagrindinę funkciją. {Žymi pagrindinės () funkcijos kūno pradžią.
  10. Sukurkite struktūros Asmens egzempliorių ir suteikdami jam vardą p.
  11. Pasiekite „struct“ nario kintamąjį pilietybę naudodami „struct“ egzempliorių p ir priskirdami jam 1 reikšmę.
  12. Pasiekite struktūros nario kintamą amžių naudodami struktūros egzempliorių p ir priskirdami jam 27 reikšmę.
  13. Iškvieskite funkciją ir perduokite jai kaip argumentą „Struct Person“, p, egzempliorių.
  14. Sėkmingai įvykdžius funkciją, ji turi grąžinti vertę.
  15. Pagrindinės () funkcijos kūno pabaiga.
  16. Sukurkite funkcijos turinį.
  17. Funkcijos kūno pradžia.
  18. Pasiekite struktūrizuoto nario pilietybės vertę ir atspausdinkite ją konsolėje kartu su kitu tekstu.
  19. Pasiekite struktūros nario amžiaus vertę ir atspausdinkite ją konsolėje kartu su kitu tekstu.
  20. Funkcijos kūno pabaiga.

C ++ struktūros apribojimas

Toliau pateikiami struktūrų apribojimai:

  • Struktūrinių duomenų tipo negalima traktuoti kaip integruotų duomenų tipų.
  • Tokie operatoriai kaip + - ir kiti negali būti naudojami struktūros kintamiesiems.
  • Struktūros nepalaiko duomenų slėpimo. Prie struktūros narių galima naudotis bet kuria funkcija, nepaisant jos apimties.
  • Statinių narių negalima deklaruoti struktūros kūno viduje.
  • Konstruktorių negalima sukurti konstrukcijos viduje.

Santrauka:

  • Struktūra yra duomenų struktūra, kurioje saugomi skirtingų tipų duomenų elementai.
  • Masyve saugomi panašaus tipo duomenų elementai, o struktūroje - skirtingų tipų duomenų elementai.
  • Struktūra turėtų būti naudojama, kai nesitikima, kad duomenų elementai pakeis vertę.
  • Prie struktūros narių pasiekiama naudojant taško (.) Operatorių.
  • Turime sukurti struktūros egzempliorių.
  • Norėdami sukurti C ++ struktūrą, naudojame struktūros raktinį žodį.
  • Rodikliai, nukreipiantys į struktūrą, kuriami panašiai, kaip kuriami rodyklės, nukreipiančios į įprastus tipus.
  • Struktūra gali būti perduota funkcijai kaip argumentas tuo pačiu būdu, kaip ir įprastos funkcijos.