Kaj je struktura v jeziku C ++?
STRUCT je C ++ podatkov struktura, ki se lahko uporablja za shranjevanje skupaj elementov različne vrste podatkov. V jeziku C ++ je struktura uporabniško določen podatkovni tip. Struktura ustvari podatkovni tip za razvrščanje elementov različnih podatkovnih vrst v en sam podatkovni tip.
Na primer:
Recimo, da morate shraniti podatke o nekom, njegovem imenu, državljanstvu in starosti. Za ločeno shranjevanje podatkov lahko ustvarite spremenljivke, kot so ime, državljanstvo in starost.
Vendar boste v prihodnosti morda morali shraniti podatke o številnih osebah. Pomeni, da bodo ustvarjene spremenljivke za različne posameznike. Na primer ime1, državljanstvo1, starost1 itd. Da bi se temu izognili, je bolje ustvariti strukturo.
V tej vadnici C ++ boste izvedeli:
- Kaj je struktura v jeziku C ++?
- Kdaj uporabiti strukturo?
- Inicializacija strukture C ++
- Ustvarjanje primerkov struktur
- Dostop do članov Strukture
- Kazalci na strukturo
- Struktura kot funkcijski argument
- Omejitev strukture C ++
Kdaj uporabiti strukturo?
Tu je nekaj razlogov za uporabo strukture v jeziku C ++.
- Uporabite strukturo, kadar morate elemente različnih podatkovnih vrst shraniti pod en podatkovni tip.
- Strukture C ++ so vrsta vrednosti in ne referenčna vrsta. Če po ustvarjanju ne nameravate spremeniti podatkov, uporabite strukturo.
Inicializacija strukture C ++
Za izdelavo strukture C ++ uporabimo ključno besedo struct, ki ji sledi identifikator. Identifikator postane ime strukture. Tu je sintaksa za ustvarjanje strukture C ++:
Sintaksa:
struct struct_name{// struct members}
V zgornji sintaksi smo uporabili ključno besedo struct. Ime_strukture je ime strukture.
Člani strukture so dodani v zavite oklepaje. Ti člani verjetno pripadajo različnim vrstam podatkov.
Na primer:
struct Person{char name[30];int citizenship;int age;}
V zgornjem primeru je oseba oseba s tremi člani. Člani vključujejo ime, državljanstvo in starost. En član je podatkovnega tipa char, preostala 2 pa sta celi števili, ko je struktura ustvarjena, pomnilnik ni dodeljen. Pomnilnik se dodeli šele, ko je spremenljivka dodana strukturi.
Ustvarjanje primerkov struktur
V zgornjem primeru smo ustvarili strukturo z imenom Oseba. Spremenljivko struct lahko ustvarimo na naslednji način:
Person p;
P je spremenljivka struct tipa Person. To spremenljivko lahko uporabimo za dostop do članov strukture.
Dostop do članov Strukture
Za dostop do članov struktur uporabimo primerek strukture in operatorja pika (.). Na primer za dostop do starosti člana struct Person:
p.age = 27;
Do starosti člana struct Person smo prišli z uporabo primerka struct, str. Nato smo vrednost starosti za člana nastavili na 27 let.
Primer 1:
#includeusing 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;}
Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- V naš program vključite glavo datoteke iostream za uporabo funkcij, ki so v njem definirane.
- Vključite imenski prostor std za uporabo njegovih razredov, ne da bi ga poklicali.
- Ustvarite strukturo z imenom Oseba.
- Začetek strukturnega telesa.
- Ustvarite strukturnega člana z imenom državljanstvo celega tipa.
- Ustvarite člana struktur z imenom starost celo število.
- Konec telesa strukture.
- Pokličite glavno funkcijo. V telo te funkcije je treba dodati programsko logiko.
- Ustvarite primerek strukture Person in mu dajte ime str.
- Nastavite vrednost državljanstva strukturnega člana na 1.
- Vrednost starosti člana struct nastavite na 27.
- Na konzolo poleg nekega drugega besedila natisnite vrednost državljanstva člana struct.
- Na konzolo poleg nekega drugega besedila natisnite vrednost starosti člana struct.
- Če se program uspešno zažene, mora vrniti vrednost.
- Konec glavne () funkcije.
Kazalci na strukturo
Možno je ustvariti kazalec, ki kaže na strukturo. Podobno je ustvarjanju kazalcev, ki kažejo na naravne vrste podatkov, kot so int, float, double itd. Upoštevajte, da bo kazalec v jeziku C ++ shranil pomnilniško mesto.
2. primer:
#includeusing 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;}
Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- V naš program vključite datoteko glave iostream, da boste lahko uporabljali njene funkcije.
- V naš program vključite imenski prostor std, da lahko uporablja njegove razrede, ne da bi ga poklical.
- Ustvarite strukturo z imenom Length.
- Začetek telesa strukture Dolžina.
- Ustvarite člana strukture z imenom merilniki celoštevilskega podatkovnega tipa.
- Ustvarite člana strukture z imenom centimetri celih števil.
- Konec telesa strukture Dolžina.
- Pokličite glavno funkcijo.
- Začetek telesa glavne () funkcije.
- Ustvarite spremenljivko kazalca * ptr in normalno spremenljivko l tipa Length.
- Naslov spremenljivke l shranite v našo spremenljivko kazalca.
- Na konzoli prikažite sporočilo, ki od uporabnika zahteva, da vnese vrednost za spremenljive števce.
- Preberite vrednost, ki jo vnese uporabnik prek tipkovnice. Tu lahko dostopate do števcev funkcij članov s spremenljivko kazalca.
- Na konzoli prikažite sporočilo, ki od uporabnika zahteva, da vnese vrednost za spremenljive centimetre.
- Preberite vrednost, ki jo vnese uporabnik prek tipkovnice. Tukaj je dostopna funkcija člana s centimetri s spremenljivko kazalca.
- Prikažite vrednosti, ki jih je uporabnik prebral na konzoli, poleg nekega drugega besedila.
- Program mora vrniti vrednost ob uspešni izvedbi.
- Konec telesa glavne () funkcije.
Struktura kot funkcijski argument
Strukturo lahko funkciji posredujete kot argument. To se naredi na enak način kot posredovanje običajnega argumenta. Spremenljivke struct lahko prenesete tudi v funkcijo. Dober primer je, ko morate prikazati vrednosti strukturnih članov. Pokažimo to:
3. primer:
#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< Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- V našo datoteko vključite datoteko glave iostream. Nato bomo njegove funkcije uporabljali brez napak.
- V naš program vključite imenski prostor std za uporabo njegovih razredov. Za uporabo njegovih razredov nam ne bo treba klicati imenskega prostora.
- Ustvarite strukturo z imenom Oseba.
- Začetek telesa strukture Oseba.
- Ustvari člana struct Person. Član je imenovan državljanstvo in ima celo število.
- Ustvari člana struct Person. Član se imenuje starost in ima celo število.
- Konec telesa strukturne osebe.
- Ustvarite funkcijo, ki za argument vzame primerek struct Person, p.
- Pokličite glavno funkcijo. {Označuje začetek telesa glavne () funkcije.
- Ustvarite primerek struct Person in mu dajte ime str.
- Dostopite do spremenljivke državljanstva člana struct z uporabo primerka struct, p in mu dodelite vrednost 1.
- Dostopite do spremenljivke starosti člana struct z uporabo primerka struct, p in ji dodelite vrednost 27.
- Pokličite funkcijo in ji kot argument posredujte primerek strukture Person, p.
- Funkcija mora vrniti vrednost ob uspešnem izvajanju.
- Konec telesa glavne () funkcije.
- Ustvari telo funkcije.
- Začetek telesa funkcije.
- Dostopite do vrednosti državljanstva člana struct in jo natisnite na konzolo skupaj z drugim besedilom.
- Dostopite do vrednosti starosti člana struct in jo natisnite na konzolo skupaj z drugim besedilom.
- Konec telesa funkcije.
Omejitev strukture C ++
Omejitve struktur so naslednje:
- Podatkovnega tipa struct ni mogoče obravnavati kot vgrajenega podatkovnega tipa.
- Operaterjev, kot je + -, in drugih ni mogoče uporabiti na strukturnih spremenljivkah.
- Strukture ne podpirajo skrivanja podatkov. Do članov strukture lahko dostopa katera koli funkcija, ne glede na njen obseg.
- Statičnih članov ni mogoče prijaviti znotraj telesa konstrukcije.
- Konstruktorjev ni mogoče ustvariti znotraj strukture.
Povzetek:
- Struktura je podatkovna struktura, ki hrani podatke, ki pripadajo različnim vrstam.
- Medtem ko matrika shranjuje podatke podobnega tipa, struktura hrani podatke različnih vrst.
- Strukturo je treba uporabiti, kadar ni pričakovati, da bodo podatki spremenili vrednost.
- Do članov strukture se dostopa s pomočjo operatorja pika (.).
- Ustvariti moramo primerek strukture.
- Za ustvarjanje strukture C ++ uporabimo ključno besedo struct.
- Kazalci, ki kažejo na strukturo, so ustvarjeni podobno, kot so ustvarjeni kazalci, ki kažejo na običajne tipe.
- Strukturo lahko funkciji posredujemo kot argument na enak način kot navadne funkcije.