Ci strukture i njihov prijenos

Struktura u CI je tip podataka namijenjen prilagodbi različite vrste vrijednosti u jednom objektu. Korisno kada trebate kombinirati nekoliko varijabli s različitim tipovima pod istim imenom. Učinite program kompaktnijim, lakše je upravljati. Struktura ima slične značajke s nizovima i klasama.

Nizovi

Prije nego što govorimo o strukturi u C, trebate opisati niz.
Postoje jednodimenzionalni nizovi, dvodimenzionalni, trodimenzionalni. Jednodimenzionalni je onaj koji ima samo jedan red s ispunjenim vrijednostima. Dvodimenzionalni - jednodimenzionalni niz, unutar kojeg postoje i drugi jednodimenzionalni nizovi. Uobičajeni niz u C se piše kao: int a= {123 4}. Vidimo da su - ime, int - tip podataka, unutar vitičastih zagrada {} vrijednosti, između uglastih zagrada [] označava duljinu, odnosno broj elemenata. Broj elemenata je statičan, jednak 4. To znači da ako korisnik doda petu vrijednost u ovom primjeru, prevodilac će izdati pogrešku. Ako najprije ne znate iznos, oni se mogu dodati kasnije, ali uglate zagrade nisu važne.


Dvodimenzionalno je deklarirano na sličan način. Primjerice, niz koji sadrži 5 elemenata niza, dok svaki sadrži 3 elementa je deklariran na sljedeći način: int a
. Razlikujte dinamičke i statične. Statički - to je onaj koji drži fiksnu količinu podataka, tj. Ima konstantnu duljinu. Pod dinamičkom se razumije veličina čija veličina nijeograničena, može varirati tijekom izvršavanja programa. Inicijalizacija dinamičkog niza događa se bez navođenja točnog broja.

Nastava

Klasa i struktura su slične, ali se razlikuju u nekim nijansama. Što je ovo? To je apstrakcija koja opisuje metode još ne postojećeg objekta. Nakon stvaranja objekta ili, kako se drugačije naziva, instanca klase ima određena svojstva. Metode se mogu koristiti interno, eksterno ili nasljedno.


Klasa je deklarirana kao: klasa /* ime klase * /{privatno: /* osobni pristupnik znači da je upravljanje metodom moguće samo unutar klase * /public: /* čini svojstva dostupnim drugim dijelovima koda * /protected: /* naslijeđene klase dobivaju mogućnost korištenja ovih svojstava * /}.

Što je struktura u jeziku C

Dizajnirana za pohranu nekoliko vrsta podataka. Na primjer, za izradu kataloga časopisa morate imati popis sa sljedećim parametrima:
  • datum objavljivanja;
  • Broj izdanja;
  • naslov;
  • trošak.
  • Za rješavanje ovog problema mogu se koristiti nizovi. Deklariramo polje s datumima int date , brojeve int brojs imenima char title [80] košta int cijenu . Po indeksu dobivamo potrebne informacije. Izlaz informacija o proizvodu pod brojem 3 izgleda ovako: cout "datum izdavanja:" datum
    ", broj:" broj
    "naslov:" naslov
    "cijena:" cijena ). Struktura pojednostavljuje unos, opisan kako slijedi: struct book {int date; int broj; char title ; int cijena ; }.
    Vidimo jednu od glavnih prednosti - postoje različite vrste varijabli.Programer ne samo da štedi vrijeme - to pojednostavljuje kod, u budućnosti će biti puno lakše raditi.

    Oglasi

    Strukture u CI igraju vrlo važnu ulogu - kombinirajući podatke različitih tipova. Najprije morate navesti naziv strukture i svojstva. struct name {tip člana; } Struct je ključna riječ, pokreće oglas, ime - ime, tip - tip podataka, ime člana - element. Deklariran na ovaj način: ime name2 gdje je ime dano prilikom kreiranja imena strukture, a ime2 je ime varijable. Možete deklarirati varijable u fazi stvaranja. struct name {tip člana; } name2; Prvi i drugi primjer su ekvivalentni jedan drugome. Ako postoji potreba da se proglasi nekoliko varijabli, one se prenose kroz zarez. struct name {tip člana; } ime2 ime3 ime4.

    Inicijalizacija

    Nakon što je struktura deklarirana u CI, ona se mora inicijalizirati. ime strukture {; char član}; ime name2; name2.member = "a"; Inicijacija se može dogoditi prilikom stvaranja. ime strukture {char member = "a"; } name2; Struktura je ista sintaksa kao u klasi. Oni praktički imaju isto ponašanje, mogućnosti. Sve u tijelu klase po defaultu nije dostupno za druge objekte. U strukturi je točno suprotno - sva polja i metode su javni. Možete ručno specificirati privatni modifikator pristupa, a time i otvoreni pristup drugim funkcijama ili klasama.

    Niz Si ​​struktura

    Nizovi su mnoštvo komponenti istog tipa. Oni su smješteni jedan pored drugoga, žalba na svaku od njih provodi se na numeričkom indeksu. Postoje jednodimenzionalni nizovi, dvodimenzionalni, trodimenzionalni.
    U jednodimenzionalnom samo jednom redu i n-e brojuelementi. Oglas izgleda ovako: int a ; Niz struktura u C je deklariran na sljedeći način: struct MyStruct {int a; }; MyStruct obj1 ; U ovom primjeru, stvorili smo MyStruct s cjelobrojnim elementom pod nazivom "a". Izjavite varijablu obj1 [] - to je niz od 10 elemenata. Pri deklariranju nekoliko nizova istog tipa, koristi MyStruct obj1 , obj2
    , inicijalizacija se pojavljuje tijekom objave. Izgleda ovako: struct MyStruct {int a; } obj1 ; Stvaranje niza struktura s dinamičkom dodjelom memorije izgleda točno kao stvaranje jednostavnog dinamičkog niza. Za to se koristi pokazivač na Ci strukturu. Pokazivač je varijabla koja ne sadrži vrijednost, ali ukazuje na varijablu koja ima vrijednost. Prema tome, pokazivač sadrži adresu varijable na koju se odnosi. Na primjer, ptr = & var1 zna ~ i da je varijabli ampersand dodijeljena samo adresa varijabli, ali ne ista vrijednost. Sada su sve var1 vrijednosti dostupne preko ptr-varijable.
    Operacija * odnosi se na sadržaj ćelije, koja je označena varijablom iza tog znaka. Na primjer, * ptr kaže da sadrži vrijednosti uzete iz ćelije s adresom na ptr. Da biste dodijelili memoriju za dinamičke varijable, koristite operaciju novu. Imamo strukturu MyStruct {string a; } Izdvajamo područje memorije, stavljamo neku vrijednost u MyStruct * point = new MyStruct

    ; Za brisanje dinamičkih varijabli koristite operaciju brisanja. Da biste oslobodili prostor, unesite delete p [];

    Pristup

    Sve stavke su prema zadanim postavkama javne, tako da ih mogu koristiti druge klase. Pitati ili promijeniti nekevrijednost, najprije se morate pozvati na element i tek tada izvršite odgovarajuću radnju.

    Stvorite myStruct s imenom varijable b. struct myStruct {string fio; long num; } b Okrećemo se fio: b.fio i tražimo proizvoljnu vrijednost. Na primjer, b.fio = "Ivanov". Razmotrite ovaj primjer. struct myStruct {string fio; long num; } tel
    = {{"Ivanov", 456756}, {Petrov, 632345}}; U ovom primjeru imamo niz struktura s redovima i brojevima. Za prikaz imena Ivanov koristite sljedeće: cout myStruct tel

    .fio; Kada želimo dobiti vrijednost od 456756 izvršavamo cout myStruct tel

    .num.

    Struktura i funkcije

    Može se koristiti kao funkcija argumenta u strukturi Ci. struct myStruct {char tekst [100]; int vrijednost; }; Imamo vrijednost vrijednosti, tekstualni niz od 100 znakova. Napravite izbornik varijable tipa myStruct: myStruct izbornik. U sljedećem primjeru, funkcija uzima pokazivač na strukturu kao argument, au tijelu neimenovane funkcije postoji inicijalizacija tih varijabli. void item (izbornik myStruct) {sprintf (menu.text, 'jedna stavka'); menu.value = 50; }.

    Zaključak

    Struktura je skup, uzorak niza, ali svi elementi mogu biti različitih vrsta. Vrlo je sličan klasi, ali se razlikuje po tome što su svojstva prema zadanim postavkama dostupna za upotrebu u drugim klasama, tj. Imaju javni specifikator. Stvoreno pomoću ključne riječi struct i unutar vitičastih zagrada {} odredite svojstva. struct name {int član; }; Najava se odvija u fazi stvaranja ili poslije. struct name {int član; } a; ili struct name {int member; } a; ime strukture a

    Povezane publikacije

    Što je to deskriptor? Opis strukture atributa Bbk prijemnici i njihov opis Bbk prijemnici i njihov opis "Sirius Sam 2": kodovi i njihov opis Python operatori i njihov prioritet izvršavanja Glavni tipovi linkova i njihov opis