Dallimi midis strukturës dhe bashkimit në C

Përmbajtje:

Dallimi midis strukturës dhe bashkimit në C
Dallimi midis strukturës dhe bashkimit në C

Video: Dallimi midis strukturës dhe bashkimit në C

Video: Dallimi midis strukturës dhe bashkimit në C
Video: Ftyra e Gruas ne SERBI 2024, Korrik
Anonim

Dallimi kryesor – Struktura kundër Bashkimit në C

Një grup është një të dhëna e strukturuar e mbështetur nga gjuha C. Një grup mund të përdoret për të ruajtur elementë të të dhënave të të njëjtit lloj. Nëse ka një deklaratë si int markat [10]; atëherë shenjat janë një grup që mund të ruajë dhjetë shenja dhe të gjitha janë numra të plotë. Ndonjëherë kërkohet ruajtja e elementeve të të dhënave të llojeve të ndryshme në të njëjtin vend memorie. Për shembull, një punonjës mund të ketë një ID punonjësi, emrin, departamentin, moshën etj. Ato janë të llojeve të ndryshme të të dhënave. Prandaj, është e nevojshme të kemi një metodë për të ruajtur elementë të ndryshëm të të dhënave si një njësi e vetme. Strukturat dhe bashkimet në C përdoren për ruajtjen e elementeve të të dhënave të llojeve të ndryshme në të njëjtin vend memorie. Një strukturë dhe një bashkim janë të ngjashme, por ato kryesisht diferencohen për shkak të shpërndarjes së kujtesës. Kujtesa e nevojshme për të ruajtur një ndryshore strukturore është përmbledhja e madhësisë së memories së të gjithë anëtarëve. Kujtesa e nevojshme për të ruajtur një variabël union është memoria e nevojshme për elementin më të madh në bashkim. Ky është ndryshimi kryesor midis strukturës dhe bashkimit në C. Ky artikull diskuton ndryshimin midis strukturës dhe bashkimit në C.

Çfarë është Struktura në C?

Një strukturë është një lloj i të dhënave i përcaktuar nga përdoruesi në C. Ndihmon për të kombinuar artikuj të dhënash të llojeve të ndryshme. Një strukturë mund të përfaqësojë rekorde. Një student mund të ketë student_id, student_name etj. Në vend që të ruajë secilën variabël veçmas, të gjithë këta elementë të ndryshëm të të dhënave mund të kompaktohen në një njësi të vetme duke përdorur një strukturë. Përcaktohet duke përdorur fjalën kyçe "struct". Në një strukturë, të gjithë anëtarët e saj mund të aksesohen në çdo kohë. Më poshtë krijon një strukturë të tipit të të dhënave të prejardhur Student.

struct Student {

instudent_id;

emri_student[20];

};

Për strukturën e mësipërme, variablat mund të deklarohen si më poshtë.

struct Student student1, student2, student3;

Ka dy mënyra për të hyrë në anëtarët e strukturës. Kjo është duke përdorur operatorin anëtar (.) dhe operatorin e treguesit të strukturës (->). Anëtarët mund të aksesohen duke përdorur emrin e strukturës_variable. emri i anëtarit. Nëse programuesi dëshiron të aksesojë emrin e studentit 2, atëherë ai mund ta shkruajë deklaratën si printf(student2.student_name);

Referojuni programit të mëposhtëm me një strukturë.

Dallimi midis strukturës dhe bashkimit në C
Dallimi midis strukturës dhe bashkimit në C

Figura 01: Programi C me struktura

Sipas programit të mësipërm, Studenti është një strukturë. Ai përmban student_id dhe student_name. Dy variabla të llojit të strukturës janë deklaruar në programin kryesor. Ata quhen student1 dhe student2. ID-ja e studentit1 caktohet me vlerën 1 duke përdorur operatorin anëtar si student1.student_id=1. Emri "Ann" është një varg. Prandaj, ai kopjohet te anëtari student_name duke përdorur funksionin e kopjimit të vargut strcpy. ID-ja dhe emri i caktohen studentit2 në një mënyrë të ngjashme. Së fundi, këto vlera shtypen duke përdorur operatorin e anëtarit.

Sasia e memories që kërkohet për të ruajtur një ndryshore strukturore është shuma e madhësisë së kujtesës së të gjithë anëtarëve. Student_id përmban 4 byte dhe student_name përmban 20 byte (një bajt secili për një karakter). Gjithsej 24 bajt është shuma e madhësisë së kujtesës që kërkohet nga struktura.

Çfarë është Union në C?

Një bashkim është një lloj i dhënash i përcaktuar nga përdoruesi në C. Ndihmon për të ruajtur lloje të ndryshme të dhënash në të njëjtin vend memorie. Një Libër mund të ketë veçori të tilla si emri_libri, çmimi etj. Në vend që të krijohen variabla për secilën prej tyre, një bashkim mund të përdoret për të kompaktuar të gjitha llojet e ndryshme të të dhënave në një njësi duke përdorur një bashkim. Përcaktohet duke përdorur fjalën kyçe 'bashkim'. Më poshtë krijon një Libër bashkimi të dhënash të prejardhur.

unionBook{

emri i karakterit[20];

çmim dyfish;

};

Për bashkimin e mësipërm, variablat mund të deklarohen si më poshtë.

union Book book1, book2;

Ka dy mënyra për të aksesuar anëtarët e sindikatës. Kjo është duke përdorur operatorin anëtar (.) dhe operatorin e treguesit të strukturës (->). Anëtarët mund të aksesohen duke përdorur union_variable_name. emri i anëtarit. Nëse programuesi dëshiron të aksesojë emrin e librit1, atëherë ai mund ta shkruajë deklaratën si printf(book1.name);

Referojuni programit të mëposhtëm me një bashkim.

Dallimi midis strukturës dhe bashkimit në C_Figura 02
Dallimi midis strukturës dhe bashkimit në C_Figura 02

Figura 02: Programi C duke përdorur union

Sipas programit të mësipërm, Libri është një bashkim. Libri1 është një variabël i tipit union. Emrit dhe çmimit i janë caktuar vlerat. Në bashkim, vetëm një nga anëtarët e tij mund të aksesohet në të njëjtën kohë dhe të gjithë anëtarët e tjerë do të kenë vlera mbeturinash. Vlera e id nuk printohet siç duhet, por vlera e çmimit printohet siç duhet.

Dallimi kryesor midis strukturës dhe bashkimit në C
Dallimi kryesor midis strukturës dhe bashkimit në C

Figura 03: Programi C i modifikuar me union

Sipas programit të mësipërm, Libri është një bashkim. Libri1 dhe libri2 janë variabla të tipit union. Së pari, caktohet vlera për emrin e librit1 dhe printohet. Pastaj caktohet vlera për emrin e librit2 dhe printohet. Të gjithë anëtarët printohen saktë sepse një anëtar po përdoret në të njëjtën kohë. Kujtesa e nevojshme për të ruajtur një bashkim është memoria e nevojshme për elementin më të madh të bashkimit. Në programin e mësipërm, ndryshorja e emrit është 20 bajt. Është më i madh se çmimi. Pra, shpërndarja e memories për bashkimin është 20 bajt.

Cilat janë ngjashmëritë midis strukturës dhe bashkimit në C?

  • Të dyja Struktura dhe Bashkimi në C janë lloje të dhënash të përcaktuara nga përdoruesi.
  • Të dyja Struktura dhe Unioni në C mund të përdoren për të ruajtur lloje të ndryshme të dhënash në të njëjtin vend memorie.

Cili është ndryshimi midis strukturës dhe bashkimit në C?

Struktura vs Union në C

Struktura është një lloj i të dhënave i përcaktuar nga përdoruesi në gjuhën C që lejon kombinimin e të dhënave të llojeve të ndryshme së bashku. Union është një lloj i të dhënave i përcaktuar nga përdoruesi në gjuhën C që lejon kombinimin e të dhënave të llojeve të ndryshme së bashku.
Aksesueshmëri
Në një strukturë, të gjithë anëtarët e saj mund të aksesohen në çdo kohë. Në një bashkim, vetëm një nga anëtarët e tij mund të aksesohet në të njëjtën kohë dhe të gjithë anëtarët e tjerë do të përmbajnë vlera të mbeturinave.
Ndarja e memories
Kujtesa e nevojshme për të ruajtur një ndryshore strukturore është përmbledhja e madhësisë së kujtesës së të gjithë anëtarëve. Kujtesa e nevojshme për të ruajtur një variabël union është memoria e nevojshme për elementin më të madh në bashkim.
Fjalë kyçe
Fjala kyçe e përdorur për të përcaktuar një strukturë është 'struct'. Fjala kyçe e përdorur për të përcaktuar një bashkim është 'bashkim'.

Përmbledhje – Struktura kundër Bashkimit në C

Një grup përdoret për të ruajtur elementët e të dhënave të të njëjtit lloj. Ndonjëherë është e nevojshme të ruhen elementë të të dhënave të llojeve të ndryshme në të njëjtin vend memorie. Gjuha e programimit C ofron strukturë dhe bashkim për të përmbushur këtë detyrë. Të dyja janë lloje të dhënash të përcaktuara nga përdoruesi. Kujtesa e nevojshme për të ruajtur një ndryshore strukturore është përmbledhja e madhësisë së memories së të gjithë anëtarëve. Kujtesa e nevojshme për të ruajtur një variabël union është memoria e nevojshme për elementin më të madh në bashkim. Ky është ndryshimi midis strukturës dhe bashkimit në C.

Recommended: