Razlika med strukturo in zvezo v C

Kazalo:

Razlika med strukturo in zvezo v C
Razlika med strukturo in zvezo v C

Video: Razlika med strukturo in zvezo v C

Video: Razlika med strukturo in zvezo v C
Video: #Вощина литая из собственного воска: в чем разница? 2024, Julij
Anonim

Ključna razlika – Struktura v primerjavi z zvezo v C

Matrika je strukturiran podatek, ki ga podpira jezik C. Matriko je mogoče uporabiti za shranjevanje podatkovnih elementov iste vrste. Če obstaja stavek kot oznake int [10]; potem so oznake niz, ki lahko shrani deset oznak in vse so cela števila. Včasih je potrebno shraniti podatkovne elemente različnih tipov na isto pomnilniško mesto. Zaposleni ima lahko na primer ID zaposlenega, ime, oddelek, starost itd. So različnih vrst podatkov. Zato je treba imeti metodo za shranjevanje različnih podatkovnih elementov kot ene same enote. Strukture in unije v C se uporabljajo za shranjevanje podatkovnih elementov različnih tipov na isto pomnilniško lokacijo. Struktura in zveza sta si podobni, vendar se razlikujeta predvsem zaradi dodelitve pomnilnika. Pomnilnik, potreben za shranjevanje strukturne spremenljivke, je vsota velikosti pomnilnika vseh članov. Pomnilnik, ki je potreben za shranjevanje unijske spremenljivke, je pomnilnik, ki je potreben za največji element v uniji. To je ključna razlika med strukturo in unijo v C. Ta članek obravnava razliko med strukturo in unijo v C.

Kaj je struktura v C?

Struktura je uporabniško definiran podatkovni tip v C. Pomaga združevati podatkovne postavke različnih vrst. Struktura lahko predstavlja zapise. Študent ima lahko student_id, student_name itd. Namesto shranjevanja vsake spremenljivke posebej je mogoče vse te različne podatkovne postavke strniti v eno samo enoto s pomočjo strukture. Definiran je s ključno besedo 'struct'. V strukturi je do vseh njenih članov mogoče dostopati kadar koli. Naslednje ustvari strukturo izpeljanega podatkovnega tipa Student.

struct Student {

intstudent_id;

char student_name[20];

};

Za zgornjo strukturo lahko spremenljivke deklarirate na naslednji način.

struct Student student1, student2, student3;

Obstajata dva načina za dostop do članov strukture. To je z uporabo operatorja člana (.) in operatorja kazalca strukture (->). Do članov je mogoče dostopati z uporabo ime_spremenljivke_strukture. ime člana. Če programer želi dostopati do imena študenta 2, lahko napiše stavek kot printf(student2.student_namename);

Glejte spodnji program s strukturo.

Razlika med strukturo in zvezo v C
Razlika med strukturo in zvezo v C

Slika 01: C program s strukturami

Po zgornjem programu je Študent struktura. Vsebuje student_id in student_name. V glavnem programu sta deklarirani dve spremenljivki strukturnega tipa. Imenujeta se študent1 in študent2. ID študenta1 je dodeljen z vrednostjo 1 z uporabo operatorja člana student1.student_id=1. Ime »Ann« je niz. Zato se prekopira v člana student_name s funkcijo strcpy za kopiranje niza. ID in ime sta študentu2 dodeljena na podoben način. Končno so te vrednosti natisnjene z uporabo operatorja člana.

Količina pomnilnika, ki je potrebna za shranjevanje strukturne spremenljivke, je vsota velikosti pomnilnika vseh članov. Student_id vsebuje 4 bajte in student_name vsebuje 20 bajtov (po en bajt za znak). Skupnih 24 bajtov je vsota velikosti pomnilnika, ki jo zahteva struktura.

Kaj je Union v C?

Unija je uporabniško definiran podatkovni tip v C. Pomaga pri shranjevanju različnih podatkovnih tipov na isti pomnilniški lokaciji. Knjiga ima lahko lastnosti, kot so ime_knjige, cena itd. Namesto ustvarjanja spremenljivk za vsako od njih se lahko uporabi unija za strnitev vseh različnih tipov podatkov v eno enoto z uporabo unije. Definiran je s ključno besedo 'unija'. Naslednje ustvari knjigo izpeljane unije podatkov.

unionBook{

char name[20];

dvojna cena;

};

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

unija Knjiga knjiga1, knjiga2;

Obstajata dva načina za dostop do članov sindikata. To je z uporabo operatorja člana (.) in operatorja kazalca strukture (->). Do članov je mogoče dostopati z uporabo union_variable_name. ime člana. Če programer želi dostopati do imena knjige1, lahko napiše stavek kot printf(book1.name);

Glejte spodnji program s sindikatom.

Razlika med strukturo in zvezo v C_slika 02
Razlika med strukturo in zvezo v C_slika 02

Slika 02: Program C z uporabo unije

Po zgornjem programu je Knjiga zveza. Knjiga1 je spremenljivka tipa union. Ime in cena sta dodeljeni vrednosti. V zvezi je naenkrat mogoče dostopati le do enega od njenih članov, vsi drugi člani pa bodo imeli nepotrebne vrednosti. Vrednost ID-ja se ne natisne pravilno, vrednost cene pa se natisne pravilno.

Ključna razlika med strukturo in zvezo v C
Ključna razlika med strukturo in zvezo v C

Slika 03: Spremenjen program C z unijo

Po zgornjem programu je Book sindikat. Knjiga1 in knjiga2 sta spremenljivki tipa union. Najprej se dodeli vrednost za ime knjige1 in se natisne. Nato se dodeli vrednost za book2 name in se natisne. Vsi člani se pravilno natisnejo, ker se hkrati uporablja en član. Pomnilnik, potreben za shranjevanje unije, je pomnilnik, potreben za največji element unije. V zgornjem programu je ime spremenljivke 20 bajtov. Večja je od cene. Torej je dodelitev pomnilnika za zvezo 20 bajtov.

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

  • Struktura in zveza v C sta uporabniško definirana tipa podatkov.
  • Tako strukturo kot zvezo v C lahko uporabite za shranjevanje različnih vrst podatkov na isto pomnilniško mesto.

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

Struktura proti uniji v C

Struktura je uporabniško definiran podatkovni tip v jeziku C, ki omogoča kombiniranje podatkov različnih tipov. Union je uporabniško definiran podatkovni tip v jeziku C, ki omogoča kombiniranje podatkov različnih tipov skupaj.
Dostopnost
V strukturi lahko kadar koli dostopate do vseh njenih članov. V zvezi je naenkrat mogoče dostopati samo do enega od njenih članov, vsi drugi člani pa bodo vsebovali nepotrebne vrednosti.
Dodelitev pomnilnika
Pomnilnik, potreben za shranjevanje strukturne spremenljivke, je vsota velikosti pomnilnika vseh članov. Pomnilnik, potreben za shranjevanje unijske spremenljivke, je pomnilnik, potreben za največji element v uniji.
Ključna beseda
Ključna beseda, uporabljena za definiranje strukture, je 'struct'. Ključna beseda, ki se uporablja za definiranje unije, je 'unija'.

Povzetek – Struktura proti uniji v C

Matrika se uporablja za shranjevanje podatkovnih elementov iste vrste. Včasih je treba na isto pomnilniško mesto shraniti podatkovne elemente različnih vrst. Programski jezik C zagotavlja strukturo in unijo za izvedbo te naloge. Oba sta podatkovna tipa, ki jih določi uporabnik. Pomnilnik, potreben za shranjevanje strukturne spremenljivke, je vsota velikosti pomnilnika vseh članov. Pomnilnik, ki je potreben za shranjevanje unijske spremenljivke, je pomnilnik, ki je potreben za največji element v uniji. To je razlika med strukturo in unijo v C.

Priporočena: