Struktuuri Ja Liidu Erinevus C-s

Sisukord:

Struktuuri Ja Liidu Erinevus C-s
Struktuuri Ja Liidu Erinevus C-s

Video: Struktuuri Ja Liidu Erinevus C-s

Video: Struktuuri Ja Liidu Erinevus C-s
Video: #Загадки #украинской_#хаты. #Музей_#Пирогово, #Киев, 2020 2024, Mai
Anonim

Peamine erinevus - struktuur vs liit C-s

Massiiv on struktureeritud andmed, mida toetab C keel. Massiivi saab kasutada sama tüüpi andmeelementide salvestamiseks. Kui int-märkidena on lause [10]; siis on märgid massiiv, kuhu saab salvestada kümme märki ja kõik need on täisarvud. Mõnikord on vaja salvestada erinevat tüüpi andmeelemente samasse mälukohta. Näiteks võib töötajal olla töötaja ID, nimi, osakond, vanus jne. Nad on erinevat tüüpi andmetega. Seetõttu on vajalik meetod erinevate andmeelementide salvestamiseks ühe üksusena. C-s olevaid struktuure ja liite kasutatakse erinevat tüüpi andmeelementide salvestamiseks ühte mäluasendisse. Struktuur ja liit on sarnased, kuid need eristuvad peamiselt mälu jaotamise tõttu. Struktuurimuutuja salvestamiseks vajalik mälu on kõigi liikmete mälu suuruse liitmine. Liitmuutuja salvestamiseks vajalik mälu on liidu suurima elemendi jaoks vajalik mälu. See on peamine erinevus struktuuri ja liidu vahel C. Selles artiklis käsitletakse struktuuri ja liidu erinevust C.

SISU

1. Ülevaade ja peamine erinevus

2. Mis on struktuur C-s

3. Mis on liit C-s

4. Struktuuri ja liidu sarnasused C-s

5. Kõrvuti võrdlus - struktuur vs liit C tabelina

6. Kokkuvõte

Mis on struktuur C-s?

Struktuur on kasutaja määratud andmetüüp C. See aitab kombineerida erinevat tüüpi andmeüksusi. Struktuur võib kujutada kirjeid. Üliõpilasel võivad olla õpilase ID, õpilase_nimi jne. Selle asemel, et iga muutujat eraldi salvestada, saab kõiki neid erinevaid andmeelemente struktuuri abil ühte kompaktseks muuta. Selle määratlemisel kasutatakse märksõna 'struct'. Struktuuris on kõigil selle liikmetel igal ajal juurdepääs. Järgnev loob tuletatud andmetüübi struct Student.

struct õpilane {

intstudent_id;

char õpilase nimi [20];

};

Ülaltoodud struktuuri korral saab muutujaid deklareerida järgmiselt.

struct Üliõpilane õpilane1, õpilane2, õpilane3;

Struktuuri liikmetele juurdepääsemiseks on kaks meetodit. Seda siis liikmeoperaatori (.) Ja struktuuripoolse operaatori (->) abil. Liikmetele pääseb juurde struktuurimuutuja_nimi abil. liikme nimi. Kui programmeerija soovib pääseda juurde õpilase 2 nimele, saab ta avalduse kirjutada printf (õpilase2.õpilase_nimi);

Vaadake allolevat programmi struktuuriga.

Struktuuri ja liidu erinevus C-s
Struktuuri ja liidu erinevus C-s

Joonis 01: Struktuuridega C-programm

Eespool nimetatud programmi kohaselt on Tudeng struktuur. See sisaldab õpilase_id ja õpilase nime. Põhiprogrammis deklareeritakse kaks struktuuri tüüpi muutujat. Neid nimetatakse õpilaseks1 ja õpilaseks2. Student1 ID määratakse väärtusega 1, kasutades liikmeoperaatorit kui student1.student_id = 1. Nimi “Ann” on string. Seetõttu kopeeritakse see stringi kopeerimisfunktsiooni strcpy abil õpilase_nimi liikmele. Id ja nimi määratakse õpilasele2 sarnaselt. Lõpuks trükitakse need väärtused liikmeoperaatori abil.

Struktuurimuutuja salvestamiseks vajalik mälumaht on kõigi liikmete mälumahu summa. Student_id sisaldab 4 baiti ja student_name sisaldab 20 baiti (tähemärgi jaoks üks baiti). 24 baiti kokku on struktuuri jaoks vajaliku mälumahu summa.

Mis on liit C-s?

Liit on kasutaja määratletud andmetüüp C-s. See aitab salvestada erinevaid andmetüüpe samasse mälukohta. Raamatul võivad olla sellised omadused nagu raamatu_nimi, hind jne. Selle asemel, et igaühele neist muutujaid luua, saab liiduga liidu abil tihendada kõik erinevad andmetüübid üheks üksuseks. Selle määratlemisel kasutatakse märksõna "liit". Järgnevalt luuakse tuletatud andmeühenduse raamat.

unionBook {

söe nimi [20];

topelt hind;

};

Eespool nimetatud liidu korral saab muutujaid deklareerida järgmiselt.

ametiühinguraamatu raamat1, raamat2;

Liidu liikmetele juurdepääsu saamiseks on kaks meetodit. Seda siis liikmeoperaatori (.) Ja struktuuripoolse operaatori (->) abil. Liikmetele pääseb juurde, kasutades union_variable_name. liikme nimi. Kui programmeerija soovib juurdepääsu raamatu1 nimele, saab ta avalduse kirjutada printf (raamat1.nimi);

Vaadake allpool olevat programmi koos liiduga.

Struktuuri ja liidu erinevus joonisel 02
Struktuuri ja liidu erinevus joonisel 02

Joonis 02: C-programm liitu kasutades

Ülaltoodud programmi kohaselt on Raamat liit. Book1 on tüüpi liidu muutuja. Nimele ja hinnale määratakse väärtused. Ametiühingus pääseb korraga juurde ainult ühele selle liikmele ja kõigil teistel liikmetel on prügiväärtused. Id väärtust ei prindita korralikult, kuid hinna väärtus prinditakse korralikult.

Põhierinevus struktuuri ja liidu vahel C-s
Põhierinevus struktuuri ja liidu vahel C-s

Joonis 03: Muudetud C-programm koos ühendusega

Eespool nimetatud programmi kohaselt on Book liit. Book1 ja book2 on liit tüüpi muutujad. Esiteks määratakse book1 nime väärtus ja see prinditakse. Seejärel määratakse book2 nime väärtus ja see prinditakse. Kõik liikmed prindivad õigesti, kuna korraga kasutatakse ühte liiget. Liidu salvestamiseks vajalik mälu on liidu suurima elemendi jaoks vajalik mälu. Ülaltoodud programmis on nimemuutujaks 20 baiti. See on suurem kui hind. Niisiis on liidu mälu eraldamine 20 baiti.

Millised on struktuuri ja liidu sarnasused C-s?

  • Nii Struktuur kui ka liit C on kasutaja määratletud andmetüübid.
  • Nii Structure kui ka Union C-s saab kasutada erinevate andmetüüpide salvestamiseks samasse mälukohta.

Mis vahe on struktuuri ja liidu vahel C-s?

Erinev artikkel keskel enne tabelit

Struktuur vs liit C-s

Struktuur on kasutaja määratud C-tüüpi andmetüüp, mis võimaldab kombineerida erinevat tüüpi andmeid. Union on kasutaja määratud C-keeles andmetüüp, mis võimaldab kombineerida erinevat tüüpi andmeid.
Juurdepääsetavus
Struktuuris on kõikidele selle liikmetele igal ajal juurdepääs. Ametiühingus pääseb korraga juurde ainult ühele selle liikmele ja kõik teised liikmed sisaldavad prügiväärtusi.
Mälu eraldamine
Struktuurimuutuja salvestamiseks vajalik mälu on kõigi liikmete mälu suuruse liitmine. Liitmuutuja salvestamiseks vajalik mälu on liidu suurima elemendi jaoks vajalik mälu.
Märksõna
Struktuuri määratlemiseks kasutatakse märksõna 'struct'. Ametiühingu määratlemisel kasutatud märksõna on 'liit'.

Kokkuvõte - struktuur vs liit C-s

Massiivi kasutatakse sama tüüpi andmeelementide salvestamiseks. Mõnikord on vaja salvestada erinevat tüüpi andmeelemente samasse mälukohta. C programmeerimiskeel annab ülesande täitmiseks struktuuri ja liidu. Mõlemad on kasutaja määratletud andmetüübid. Struktuurimuutuja salvestamiseks vajalik mälu on kõigi liikmete mälu suuruse liitmine. Liitmuutuja salvestamiseks vajalik mälu on liidu suurima elemendi jaoks vajalik mälu. See on erinevus struktuuris ja ühenduses C-s.

Soovitatav: