Razlika med strukturo in unijo v C

Ključne razlike - struktura vs Zveza v C
 

Niz je strukturiran podatek, ki ga podpira jezik C. Niz se lahko uporablja za shranjevanje podatkovnih elementov iste vrste. Če obstaja izjava kot oznake int [10]; potem so znamke niz, ki lahko shrani deset znamk in vsi so cela števila. Včasih je potrebno shraniti podatkovne elemente različnih vrst na isto pomnilniško mesto. Na primer, zaposleni ima lahko osebno identifikacijsko številko, ime, oddelek, starost itd. Ti so različnih podatkov. Zato je treba imeti način shranjevanja različnih podatkovnih elementov kot ene same enote. Strukture in Unions v C se uporabljajo za shranjevanje podatkovnih elementov različnih vrst na isti pomnilniški lokaciji. Struktura in zveza sta podobna, vendar se razlikujeta predvsem zaradi dodelitve pomnilnika. Pomnilnik, potreben za shranjevanje strukturne spremenljivke, je seštevanje velikosti pomnilnika vseh članov. Pomnilnik, potreben za shranjevanje spremenljivke zveze, je pomnilnik, potreben za največji element zveze. Tako je ključna razlika med strukturo in zvezo v C. Ta članek obravnava razliko med strukturo in zvezo v C..

VSEBINA

1. Pregled in ključne razlike
2. Kaj je struktura v C
3. Kaj je Unija v C
4. Podobnosti med strukturo in unijo v C
5. Primerjava ob strani - Struktura proti Uniji v C v tabeli
6. Povzetek

Kaj je struktura v C?

Struktura je uporabniško določena vrsta podatkov v C. Pomaga pri kombiniranju podatkovnih elementov različnih vrst. Struktura lahko predstavlja zapise. Študent ima lahko Student_id, Student_name itd. Namesto da shranjujete vsako spremenljivko posebej, je mogoče vse te različne podatkovne elemente sestaviti v eno enoto z uporabo strukture. Določena je s ključno besedo 'struct'. V strukturi je mogoče do vseh svojih članov dostopati kadarkoli. Naslednja ustvari izpeljano strukturo podatkov Študent.

Struktura Študent

intstudent_id;

char student_name [20];

;

Za zgornjo strukturo je mogoče spremeniti spremenljivke, kot sledi.

struktura Študent študent1, študent2, študent3;

Obstajata dve metodi za dostop do članov strukture. To je z uporabo operaterja člana (.) In strukture kazalca kazalca (->). Dostop do članov je mogoče uporabiti z imenom structure_variable_name. ime člana Če želi programer dostopati do imena študenta 2, lahko izjavo napiše kot printf (ime študenta2.student_ime);

Glejte spodnji program s strukturo.

Slika 01: Program C s strukturami

Po zgornjem programu je Študent struktura. Vsebuje ime študenta in študenta. V glavnem programu sta navedeni dve spremenljivki vrste strukture. Imenujemo jih student1 in student2. ID študenta1 je dodeljen z vrednostjo 1 z uporabo operatorja člana kot student1.student_id = 1. Ime "Ann" je niz. Zato je kopiran v člana_ime študenta z uporabo funkcije kopiranja v strcpy. ID in ime sta na podoben način dodeljena student2. Končno se te vrednosti natisnejo s pomočjo operatorja članice.

Količina pomnilnika, ki je potrebna za shranjevanje spremenljivke strukture, je vsota velikosti pomnilnika vseh članov. Student_id vsebuje 4 bajte, ime študenta pa 20 bajtov (po en bajt za znak). Skupaj 24 bajtov je vsota velikosti pomnilnika, ki jo zahteva struktura.

Kaj je Union v C?

Zveza je uporabniško določena vrsta podatkov v C. Pomaga shranjevanje različnih vrst podatkov na isto pomnilniško mesto. Knjiga ima lahko lastnosti, kot so ime knjige, cena itd. Namesto da bi ustvarili spremenljivke za vsakega od njih, lahko združenje uporabite za kompaktnost vseh različnih podatkovnih vrst v eno enoto z uporabo zveze. Opredeljena je s ključno besedo 'union'. Naslednja ustvari izpeljano knjigo zvez podatkov.

unionBook

ime char [20];

dvojna cena;

;

Za zgornjo unijo lahko spremenljivke deklariramo na naslednji način.

zvezna knjiga book1, book2;

Za dostop do članov zveze obstajata dva načina. To je z uporabo operaterja člana (.) In strukture kazalca kazalca (->). Dostop do članov je možen z imenom union_variable_name. ime člana Če želi programer dostopati do imena knjige1, potem lahko izjavo napiše kot printf (ime knjige);

Spodnji program poiščite z zvezo.

Slika 02: Program C s pomočjo unije

Po zgornjem programu je Knjiga zveza. Book1 je spremenljivka tipa unije. Ime in cena sta dodeljeni vrednosti. V sindikatu je lahko hkrati dostopen le en član, vsi ostali člani pa bodo imeli vrednosti smeti. Vrednost id se ne tiska pravilno, vrednost cene pa se natisne pravilno.

Slika 03: Spremenjen program C s povezavo

Po zgornjem programu je Book združenje. Book1 in book2 sta spremenljivki tipa union. Najprej se dodeli vrednost imena book1 in se natisne. Nato je dodeljena vrednost imena book2 in se natisne. Vsi člani pravilno natisnejo, ker se hkrati uporablja en član. Pomnilnik, potreben za shranjevanje zveze, je pomnilnik, potreben za največji element zveze. V zgornjem programu je spremenljivka imena 20 bajtov. Večja je od cene. Torej, razporeditev pomnilnika za zvezo je 20 bajtov.

Kakšne so podobnosti med strukturo in unijo v C?

  • Struktura in Unija v C sta uporabniško določeni vrsti podatkov.
  • Strukturo in Union v C lahko uporabljate za shranjevanje različnih vrst podatkov v isti pomnilniški prostor.

Kakšna je razlika med strukturo in unijo v C?

Struktura proti Uniji v C

Struktura je uporabniško določen tip podatkov v jeziku C, ki omogoča kombiniranje podatkov različnih vrst skupaj. Union je uporabniško določen tip podatkov v jeziku C, ki omogoča kombiniranje podatkov različnih vrst skupaj.
 Dostopnost
V strukturi je do vseh članov mogoče dostopati kadar koli. V sindikatu je lahko hkrati dostopen le en član, vsi drugi člani pa bodo vsebovali vrednosti smeti.
Dodelitev spomina
Pomnilnik, potreben za shranjevanje strukturne spremenljivke, je seštevanje velikosti pomnilnika vseh članov. Pomnilnik, potreben za shranjevanje spremenljivke zveze, je pomnilnik, potreben za največji element zveze.
 Ključna beseda
Ključna beseda, ki se uporablja za definiranje strukture, je "struct". Ključna beseda, ki se uporablja za določitev zveze, je 'union'.

Povzetek - Struktura vs Zveza v C

Niz se uporablja za shranjevanje podatkovnih elementov iste vrste. Včasih je treba na isti pomnilniški prostor shraniti podatkovne elemente različnih vrst. Programski jezik C zagotavlja strukturo in združevanje za izvajanje te naloge. Obe sta uporabniško definirani tipi podatkov. Pomnilnik, potreben za shranjevanje strukturne spremenljivke, je seštevanje velikosti pomnilnika vseh članov. Pomnilnik, potreben za shranjevanje spremenljivke zveze, je pomnilnik, potreben za največji element zveze. To je razlika med strukturo in združitvijo v C.

Referenca:

1.Point, Vadnice. “Strukture v C.”, Tutorials Point, 15. avgust 2017. Na voljo tukaj 
2.Point, Vadnice. "Sindikati v C." , Točka za vaje, 15. avgust 2017. Na voljo tukaj