Ključna razlika - Struktura proti Uniji v C
Matrika je podatkovno strukturiran, ki ga podpira jezik C. Matrika se lahko uporablja za shranjevanje podatkovnih elementov iste vrste. Če obstaja stavek kot oznake int [10]; potem so oznake matrika, v katero lahko shranimo deset oznak, vse pa so cela števila. Včasih je treba na isti pomnilniški lokaciji shraniti različne vrste podatkovnih elementov. Na primer, zaposleni ima lahko ID, ime, oddelek, starost itd. Ima različne vrste podatkov. Zato je treba imeti metodo za shranjevanje različnih podatkovnih elementov kot eno samo enoto. Strukture in združitve v C se uporabljajo za shranjevanje različnih podatkovnih elementov na istem pomnilniškem mestu. Struktura in zveza sta si podobni, vendar se večinoma razlikujeta zaradi dodelitve pomnilnika. Pomnilnik, potreben za shranjevanje spremenljivke strukture, je vsota velikosti pomnilnika vseh članov. Pomnilnik, potreben za shranjevanje spremenljivke zveze, je pomnilnik, potreben za največji element v povezavi. To je ključna razlika med strukturo in združitvijo v C. Ta članek obravnava razliko med strukturo in združitvijo v C.
VSEBINA
1. Pregled in ključna razlika
2. Kaj je struktura v C
3. Kaj je zveza v C
4. Podobnosti med strukturo in zvezo v C
5. Vzporedna primerjava - Struktura v primerjavi z Z v C v tabelarni obliki
6. Povzetek
Kaj je struktura v C?
Struktura je uporabniško določen podatkovni tip v C. Pomaga pri kombiniranju podatkovnih postavk različnih vrst. Struktura lahko predstavlja zapise. Študent ima lahko student_id, student_name itd. Namesto da bi shranili vsako spremenljivko posebej, so lahko vsi ti različni elementi podatkov strnjeni v eno enoto s pomočjo strukture. Določena je s ključno besedo 'struct'. V strukturi je mogoče kadar koli dostopati do vseh njenih članov. Naslednje ustvari izpeljani podatkovni tip struct Student.
struct Študent {
intstudent_id;
char štud_ime [20];
};
Za zgornjo strukturo lahko spremenljivke deklariramo na naslednji način.
struct Študent študent1, študent2, študent3;
Obstajata dve metodi za dostop do članov strukture. To je z uporabo operatorja člana (.) In operatorja kazalca strukture (->). Do članov lahko dostopate z uporabo ime_premenljive_strukture. ime člana. Če želi programer dostopati do imena študenta 2, lahko izjavo napiše kot printf (student2.student_namename);
Glejte spodnji program s strukturo.
Slika 01: C program s strukturami
V skladu z zgornjim programom je Študent struktura. Vsebuje student_id in student_name. V glavnem programu sta prijavljeni dve spremenljivki tipa strukture. Imenujeta se študent1 in študent2. ID študenta1 se dodeli z vrednostjo 1 z uporabo operatorja člana kot student1.student_id = 1. Ime "Ann" je niz. Zato se kopira v člana študentskega imena s pomočjo funkcije kopiranja niza strcpy. Id in ime sta študentu2 dodeljena na podoben način. Na koncu se te vrednosti natisnejo s pomočjo operatorja člana.
Količina pomnilnika, potrebna za shranjevanje spremenljivke strukture, je vsota velikosti pomnilnika vseh članov. Student_id vsebuje 4 bajte, student_name pa 20 bajtov (po en bajt za znak). Skupno 24 bajtov je vsota velikosti pomnilnika, ki jo zahteva struktura.
Kaj je Union v C?
Sindikat je uporabniško določen podatkovni tip v C. Pomaga pri shranjevanju različnih podatkovnih vrst na istem pomnilniškem mestu. Knjiga ima lahko lastnosti, kot so ime_knjige, cena itd. Namesto da bi ustvarili spremenljivke za vsako od njih, lahko združitev uporabite za stiskanje vseh različnih podatkovnih vrst v eno enoto s pomočjo zveze. Določen je s ključno besedo 'union'. Naslednje ustvari izpeljano knjigo podatkovnih zvez.
unionBook {
ime char [20];
dvojna cena;
};
Za zgornjo zvezo lahko spremenljivke deklariramo na naslednji način.
zveza Knjiga knjiga1, knjiga2;
Obstajata dve metodi za dostop do članov sindikata. To je z uporabo operatorja člana (.) In operatorja kazalca strukture (->). Do članov lahko dostopate z imenom union_variable_name. ime člana. Če želi programer dostopati do imena knjige1, lahko izjavo napiše kot printf (book1.name);
Glejte spodnji program s sindikatom.
Slika 02: Program C z uporabo union
Po zgornjem programu je Knjiga zveza. Book1 je spremenljivka type union. Ime in cena sta dodeljeni vrednosti. V sindikatu je naenkrat mogoče dostopati le do enega od njegovih članov, vsi drugi člani pa bodo imeli vrednosti smeti. Vrednost id se ne natisne pravilno, vrednost cene pa se natisne pravilno.
Slika 03: Spremenjeni program C z združitvijo
Po zgornjem programu je Book zveza. Book1 in book2 sta spremenljivki tipa zveze. Najprej se dodeli vrednost za ime knjige1 in se natisne. Nato se dodeli vrednost za ime 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. Je večja od cene. Dodelitev pomnilnika za zvezo je torej 20 bajtov.
Kakšne so podobnosti med strukturo in zvezo v C?
- Tako Structure kot Union v C sta uporabniško določena podatkovna tipa.
- Tako Structure kot Union v C lahko uporabite za shranjevanje različnih podatkovnih vrst na istem pomnilniškem mestu.
Kakšna je razlika med strukturo in zvezo v C?
Diff Article Sredina pred mizo
Struktura proti Uniji v C |
|
Struktura je uporabniško določen podatkovni tip v jeziku C, ki omogoča kombiniranje podatkov različnih vrst skupaj. | Union je uporabniško določen podatkovni tip v jeziku C, ki omogoča kombiniranje podatkov različnih vrst. |
Dostopnost | |
V strukturi je mogoče kadar koli dostopati do vseh njenih članov. | V sindikatu je naenkrat mogoče dostopati samo do enega člana, vsi drugi člani pa bodo vsebovali vrednosti smeti. |
Dodelitev spomina | |
Pomnilnik, potreben za shranjevanje spremenljivke strukture, je vsota velikosti pomnilnika vseh članov. | Pomnilnik, potreben za shranjevanje spremenljivke zveze, je pomnilnik, potreben za največji element v povezavi. |
Ključna beseda | |
Ključna beseda, ki se uporablja za definiranje strukture, je 'struct'. | Ključna beseda, ki se uporablja za definiranje zveze, je "zveza". |
Povzetek - Struktura vs zveza v C
Matrika se uporablja za shranjevanje podatkovnih elementov iste vrste. Včasih je treba na isti pomnilniški lokaciji shraniti različne vrste podatkovnih elementov. Programski jezik C zagotavlja strukturo in združitev za izpolnitev te naloge. Oba sta uporabniško določena podatkovna tipa. Pomnilnik, potreben za shranjevanje spremenljivke strukture, je vsota velikosti pomnilnika vseh članov. Pomnilnik, potreben za shranjevanje spremenljivke zveze, je pomnilnik, potreben za največji element v povezavi. To je razlika med strukturo in združitvijo v C.