Razlika med strukturo in unijo

Struktura in zveza sta v jeziku C določena uporabniško določena tipa in sta pojmovno enaka, vendar se na nek način še vedno razlikujeta, kot je način dodeljevanja pomnilnika njihovim članom. So deklarirani podobno, vendar delujejo drugače. Uporabniku omogočajo kombiniranje različnih vrst podatkov pod enim imenom. Medtem ko se pri deklariranju spremenljivk strukture za vsakega člana uporablja ločena pomnilniška lokacija, si različni člani zveze spremenljivke delijo isto pomnilniško mesto. Preučimo, kakšna je razlika med strukturo in združitvijo je podrobnost.

Kaj je struktura?

Struktura je samo še en uporabniško določen tip podatkov na C, ki uporabniku omogoča kombiniranje podatkovnih vrst različnih vrst v eno vrsto v bloku pomnilnika. Struktura lahko vsebuje enostavne in zapletene vrste podatkov, povezane med seboj, ki sicer ne bodo imele smisla. Vsak član v strukturi dobi svoje pomnilniško mesto, tako da je do nje možno dostopati in kadar koli.

Struktura se uporablja, kadar je za veliko podatkov potrebno razvrščanje v skupine, na primer imenik, v katerem so shranjene informacije o številnih članih v knjigi ali imeniku, v katerih so shranjene vse informacije o enem samem stiku - ime, naslov, kontaktna številka ipd. Naslov vsakega člana bo v naraščajočem vrstnem redu, kar pomeni, da se bo spomin vsakega člana začel z različnimi odmičnimi vrednostmi. Spreminjanje vrednosti enega člana ne bo vplivalo na druge člane.

Ključna beseda „struct“ se uporablja za definiranje strukture različnih vrst podatkov pod enim imenom. Na primer, če želite ustvariti bazo podatkov o zaposlenih, boste morali shraniti podatke o imenu, starosti, telefonu in plačah zaposlenega pod eno osebo. To stori ključna beseda 'struct', ki nato prevajalcu sporoči, da je bila razglašena struktura.

zaposleni v strukturi

ime niza;

strunska starost;

nizalni telefon;

nizka plača;

emp1, emp2;

Tu je "zaposleni" ime strukture in dve spremenljivki 'emp1' in 'emp2' sta ustvarjeni tipa 'zaposleni'. Zapiralnim naramnicam mora slediti podpičje (;).

Do članov strukture lahko dostopata dve vrsti operaterjev:

  1. Član operater
  2. Strukturni operater kazalca

Kaj je Unija?

Gre za posebno vrsto podatkov, ki se uporablja na C, ki uporabniku omogoča shranjevanje podatkov različnih vrst v isti pomnilniški prostor. Zveza je precej podobna strukturi in jo lahko določimo tako, da ključno besedo 'struktura' zamenjamo s ključno besedo 'zveza'. Člani prekrivajo spomin med seboj v združenju in je dovolj velik, da ustreza vsem njegovim članom.

Ko je spremenljivka povezana z union, prevajalnik dodeli pomnilnik glede na velikost največjega pomnilnika, zato je velikost zveze enaka velikosti največjega podatkovnega člana. Zveza se lahko definira z več člani, vendar samo en član vsebuje vrednost v določenem času.

Naslov je enak za vse člane zveze, kar pomeni, da se vsak član začne z isto izravnano vrednostjo. In spreminjanje vrednosti enega člana bo vplivalo na vrednosti drugih članov. Zveza se lahko uporablja, kadar želite shraniti nekaj, kar je ena od več vrst podatkov.

sindikalni uslužbenec

ime char [32];

int starost;

plavajoče plače;

;

Tu ključna beseda 'union' definira unijo, ki je precej podobna deklaraciji strukture. Spremenljivka lahko shrani vrednost niza, ki je "ime zaposlenega", celo število, ki je "starost zaposlenega", ali float, ki predstavlja "plačo zaposlenega".

Razlika med strukturo in unijo

1. Ključna beseda

Ključna beseda „struct“ se uporablja za definiranje strukture, medtem ko se za opredelitev zveze uporablja beseda „union“.

2. Dodelitev spomina

Članom znotraj strukture je dodeljen ločen pomnilni prostor, člani pa imajo različne naslove, ki si ne delijo spomina. Zveza na drugi strani ima enak pomnilniški prostor za vse svoje člane, tako da je dodeljena skupna spominska lokacija.

3. Dostop članov

Zveza shrani eno samo vrednost hkrati za vse svoje člane, ki omogočajo dostop samo enemu članu. Medtem ko je več struktur lahko shranjenih v strukturi, tako da lahko kadar koli dostopate do vseh vrednosti članov in jih pridobite.

4. Velikost

Velikost strukture je enaka vsoti velikosti vseh članov ali več, medtem ko je velikost zveze enaka velikosti člana največje velikosti.

5. Inicializacija

V strukturi je mogoče hkrati inicializirati več članov hkrati, medtem ko je v združenju lahko inicializiran samo prvi član z vrednostjo njegove vrste.

5. Vrednost

Struktura lahko shrani različne vrednosti vseh članov in sprememba vrednosti enega člana ne bo vplivala na vrednosti drugih članov. Medtem ko sindikat hrani enake vrednosti za vse svoje člane in bo sprememba vrednosti enega člana vplivala na vrednost drugih.

Struktura proti Uniji

Struktura Zveza
Ključna beseda Struct se uporablja za definiranje strukture. Ključna beseda Union se uporablja za definiranje zveze.
Člani si ne delijo spomina v strukturi. Člani si delijo pomnilniški prostor v sindikatu.
V strukturi lahko kadar koli najdete vsakega člana. V sindikatu je lahko istočasno dostopen le en član.
Naenkrat je mogoče inicializirati več članov strukture. Inicializiran je lahko le prvi član.
Velikost strukture je enaka vsoti velikosti posameznega člana. Velikost zveze je enaka velikosti največjega člana.
Spreminjanje vrednosti enega člana ne bo vplivalo na vrednost drugega. Sprememba vrednosti enega člana bo vplivala na vrednosti drugih članov.
Shrani različne vrednosti za vse člane. Hrani enako vrednost za vse člane.

Povzetek

  • Tako struktura kot združevanje sta v C-ju uporabniško določeni tipi podatkov, ki so funkcionalno in konceptualno enaki, vendar so na nek način precej različni.
  •  Obe vsebujeta spremenljivki različnih vrst podatkov, vendar uporabljata isto skladnjo za deklaracijo spremenljivk in dostop do članov. Medtem ko je struktura opredeljena s ključno besedo 'struct', je zveza opredeljena s ključno besedo 'union'.
  • Vsak član dobi v strukturi ločeno pomnilniško mesto, medtem ko je v združenju celotni pomnilniški prostor enak članu največje velikosti. Vsi člani imajo v združenju enak pomnilniški prostor.
  • Dostop do vsakega člana v poljubnem zaporedju v strukturi, medtem ko je v uniji možen dostop samo do te spremenljivke, katere vrednost je pred kratkim shranjena.