Ci strukture in njihov prenos

Struktura v CI je podatkovni tip, ki je namenjen prilagoditvi drugačne vrste vrednosti v enem objektu. Koristno, če morate združiti več spremenljivk z različnimi tipi pod istim imenom. Naredite program bolj kompakten, je bolj priročno za upravljanje. Struktura ima podobne lastnosti kot nizi in razredi.

Nizi

Preden govorimo o strukturi v C, morate opisati matriko.
Obstajajo dvodimenzionalni, tridimenzionalni nizi. Enodimenzionalna je tista, ki ima samo eno vrstico z napolnjenimi vrednostmi. Dvodimenzionalna - enodimenzionalna matrika, znotraj katere so še enodimenzionalni nizi. Običajna matrika v C je zapisana kot: int a= {123 4}. Vidimo, da so - ime, int - tip podatkov, znotraj kodirnih oklepajev {} vrednosti, med oglatimi oklepaji [] označuje dolžino, to je število elementov. Število elementov je statično, enako 4. To pomeni, da če uporabnik doda peto vrednost v tem primeru, bo prevajalnik izdal napako. Če najprej ne poznate zneska, jih lahko dodate pozneje, oglati oklepaji pa niso pomembni.


Dvodimenzionalnost je deklarirana na podoben način. Na primer, matrika, ki vsebuje 5 elementov niza, medtem ko je vsaka vsebuje 3 elemente, je deklarirana na naslednji način: int a
. Razlikujte dinamično in statično. Statična - je tista, ki ima določeno količino podatkov, torej je konstantna dolžina. Pod dinamično se razume, katere velikost niomejena, se lahko spreminja med izvajanjem programa. Inicializacija dinamičnega niza poteka brez podajanja natančnega števila.

Razredi

Razred in struktura sta podobna, vendar se razlikujeta v nekaterih odtenkih. Kaj je to? To je abstrakcija, ki opisuje metode še ne obstoječega objekta. Po izdelavi predmeta ali, ko se imenuje drugače, ima primerek razreda posebne lastnosti. Metode se lahko uporabljajo interno, navzven ali z dedovanjem.


Razred je razglašen kot: razred /* ime razreda * /{zasebno: /* specifikator zasebnega dostopa pomeni, da je upravljanje metod mogoče samo znotraj razreda * /public: /* omogoča lastnosti, ki so na voljo drugim delom kode * /protected: /* podedovani razredi imajo možnost uporabe teh lastnosti * /}.

Kaj je struktura v jeziku C

Namenjena je shranjevanju več vrst podatkov. Če želite na primer ustvariti katalog revij, morate imeti seznam naslednjih parametrov:
  • datum objave;
  • Številka izdaje;
  • naslov;
  • stroški.
  • Za rešitev tega problema se lahko uporabijo nizi. Deklariramo matriko z datumi int date , številke int številkaz imeni char title [80] stane int price . Po indeksu dobimo potrebne informacije. Izhodni podatki o izdelku pod številko 3 izgleda takole: cout "datum izdaje:" datum
    ", številka:" številka
    "naslov:" naslov
    "cena:" cena ). Struktura poenostavlja vnos, opisan na naslednji način: struct book {int date; int številka; char naslov ; int cena ; }
    Vidimo eno od glavnih prednosti - obstajajo različne vrste spremenljivk.Programer ne le prihrani čas - poenostavi kodo, v prihodnosti bo veliko lažje delati.

    Oglasi

    Strukture v industriji Skupnosti igrajo zelo pomembno vlogo - združujejo podatke različnih vrst. Najprej morate določiti ime strukture in lastnosti. ime strukture {tip; } Struct je ključna beseda, začne oglas, ime - ime, tip - tip podatkov, ime člana - element. Deklarirano na ta način: ime name2, kjer je ime podano pri ustvarjanju imena strukture, in ime2 je ime spremenljivke. Spremenljivke lahko deklarirate na stopnji ustvarjanja. ime strukture {tip; } name2; Prvi in ​​drugi primer sta enakovredna. Če obstaja potreba po razglasitvi več spremenljivk, se prenesejo skozi vejico. ime strukture {tip; } ime2 ime3 ime4.

    Inicializacija

    Ko je struktura razglašena v CI, jo je treba inicializirati. ime strukture {; char}; ime name2; name2.member = "a"; Začetek se lahko pojavi pri ustvarjanju. ime strukture {char member = "a"; } name2; Struktura je enaka sintaksi kot v razredu. Imajo praktično enako vedenje, priložnosti. Vse v telesu razreda ni privzeto na voljo za uporabo v drugih predmetih. V strukturi je res nasprotno - vsa polja in metode so javni. Ročno lahko podate modifikator zasebnega dostopa in s tem odprt dostop do drugih funkcij ali razredov.

    Niz Si ​​struktur

    Nizi so množica sestavnih delov istega tipa. Nahajajo se drug poleg drugega, pritožba na vsako od njih se izvaja na numeričnem indeksu. Obstajajo enodimenzionalni tridimenzionalni nizi.
    V enodimenzionalni samo eni vrstici in n-e številkielementov Oglas izgleda tako: int a ; Niz struktur v C je deklariran na naslednji način: struct MyStruct {int a; }; MyStruct obj1 ; V tem primeru smo ustvarili MyStruct z celoštevilskim elementom z imenom "a". Razglasi spremenljivko obj1 [] - to je niz 10 elementov. Pri razglasitvi več nizov istega tipa uporablja MyStruct obj1 , obj2
    , inicializacija pa se pojavi med objavo. Izgleda takole: struct MyStruct {int a; } obj1 ; Ustvarjanje niza struktur z dinamičnim dodeljevanjem pomnilnika je videti tako kot ustvarjanje preproste dinamične matrike. Za to se uporablja kazalec na strukturo Ci. Kazalec je spremenljivka, ki ne vsebuje vrednosti, vendar označuje spremenljivko, ki ima vrednost. Zato kazalec vsebuje naslov spremenljivke, na katero se nanaša. Na primer, ptr = & var1 pomeni, da se spremenljivki ampersand dodeli le naslov spremenljivki, vendar ne enake vrednosti. Zdaj so vse vrednosti var1 na voljo preko spremenljivke ptr.
    Operacija * se nanaša na vsebino celice, ki jo za spremenljivko označi spremenljivka. Na primer, * ptr pravi, da vsebuje vrednosti, vzete iz celice z naslovom na ptr. Za dodelitev pomnilnika dinamičnim spremenljivkam uporabite operacijo novo. Imamo strukturo MyStruct {niz a; } Dodelimo pomnilniško območje, v MyStruct * point = new MyStruct

    dodamo nekaj vrednosti; Za brisanje dinamičnih spremenljivk uporabite operacijo brisanja. Za sprostitev prostora vnesite delete p [];

    Dostop

    Vsi elementi so privzeto javni, zato jih lahko uporabljajo drugi razredi. Če želite vprašati ali spremeniti nekajvrednost, se morate najprej sklicevati na element in šele nato narediti ustrezno dejanje.

    Ustvari myStruct z imenom spremenljivke b. struct myStruct {string fio; long num; } b Obrnite se na fio: b.fio in prosimo za poljubno vrednost. Na primer, b.fio = "Ivanov". Razmislite o tem primeru. struct myStruct {string fio; long num; } tel
    = {{"Ivanov", 456756}, {Petrov, 632345}}; V tem primeru imamo niz struktur z vrsticami in številkami. Za prikaz imena Ivanov uporabite naslednje: cout myStruct tel

    .fio; Ko želimo dobiti vrednost 456756, izvedemo cout myStruct tel

    .num.

    Struktura in funkcije

    Lahko se uporabi kot argumentska funkcija v strukturi Ci. struct myStruct {char besedilo [100]; int vrednost; }; Imamo vrednostno vrednost, besedilni niz s 100 znaki. Ustvarite meni spremenljivke myStruct: myStruct meni. V naslednjem primeru funkcija prevzame kazalec na strukturo kot argument in v telesu neimenovane funkcije obstaja inicializacija teh spremenljivk. void (meni myStruct) {sprintf (menu.text, 'en element'); menu.value = 50; }

    Zaključek

    Struktura je niz, vzorec matrike, vendar so lahko vsi elementi različnih vrst. Je zelo podoben razredu, vendar se razlikuje po tem, da so lastnosti privzeto na voljo za uporabo v drugih razredih, kar pomeni, da imajo javni specifikator. Ustvarjeno z uporabo ključne besede struct in znotraj kodiranih zavihkov {} določite lastnosti. struct name {int member; }; Napoved se zgodi v fazi nastanka ali po njej. struct name {int member; } a; ali ime strukture {int člana; } a; ime strukture a

    Sorodne publikacije

    Meinkraft. Strme strukture in spomeniki Kaj je deskriptor? Opis strukture atributa Kritična napaka strukture korupcije v sistemu Windows 10: Kako jo odpraviti? Bbk sprejemniki in njihov opis "Sirius Sam 2": kode in njihov opis Glavne vrste povezav in njihov opis