Diferența dintre structură și Uniune Diferența dintre

Anonim

structura și uniunea sunt tipuri de date definite de utilizator în limbajul C și sunt conceptual aceleași, totuși acestea sunt diferite în unele moduri, cum ar fi modul în care memoria este alocată membrilor lor. Ele sunt declarate în mod similar, dar funcționează diferit. Ele permit utilizatorului să combine diferite tipuri de date sub un singur nume. În timp ce locația de memorie separată este folosită pentru fiecare membru atunci când se declară variabilele de structură, diferiții membri ai unei variabile sindicate au aceeași locație de memorie. Să studiem diferența dintre structură și uniune este detaliu.

Ce este structura?

O structură este doar un alt tip de date definit de utilizator în C, care permite utilizatorului să combine tipuri de date de diferite tipuri într-un singur tip într-un bloc de memorie. O structură poate conține atât tipuri de date simple, cât și complexe, legate între ele, care, altfel, nu vor avea sens. Fiecare membru dintr-o structură își obține propria locație de memorie, astfel încât să poată fi accesată și recuperată în orice moment.

O structură este utilizată atunci când o mulțime de date necesită gruparea ca un director care stochează informații despre mulți membri într-o carte sau într-o agendă care stochează toate informațiile despre un singur contact - nume, numărul de contact, și așa mai departe. Adresa fiecărui membru va fi în ordine ascendentă, ceea ce înseamnă că memoria fiecărui membru va începe cu valori de offset diferite. Modificarea valorii unui membru nu va avea nici un efect asupra altor membri.

Un cuvânt cheie "struct" este folosit pentru a defini o structură de tipuri diferite de date sub un singur nume. De exemplu, dacă doriți să creați o bază de date a angajaților, va trebui să stocați numele angajatului, vârsta, telefonul și detaliile salariului sub o singură entitate. Acest lucru se face prin cuvântul cheie "struct", care apoi spune compilatorului că a fost declarată o structură.

struct angajat {

nume șir;

vârstă de șir;

telefon cu șir;

salariu de șir;

} emp1, emp2;

Aici, "angajatul" este numele structurii și două variabile "emp1" și "emp2" sunt create de tipul "angajat". Plăcile de închidere trebuie să fie urmate de un punct și virgulă (;).

Membrii unei structuri pot fi accesați de două tipuri de operatori:

  1. Operator membru
  2. Operator indicator poștal

Ce este Union?

Este un tip de date special folosit în C, care permite utilizatorului să stocheze tipuri de date de diferite tipuri în aceeași locație de memorie. O uniune este destul de similară cu o structură și poate fi definită prin înlocuirea cuvântului cheie "struct" cu cuvântul cheie "uniune". Membrii își suprapun memoria unul altuia într-o uniune și este suficient de mare pentru a se potrivi tuturor membrilor săi.

Atunci când o variabilă este asociată cu unirea, compilatorul alocă memoria luând în considerare dimensiunea celei mai mari memorii, astfel încât dimensiunea unei uniuni este egală cu dimensiunea celui mai mare membru de date.O uniune poate fi definită cu mulți membri, dar numai un membru conține valoarea la orice moment dat.

Adresa este aceeași pentru toți membrii unei uniuni, ceea ce înseamnă că fiecare membru începe cu aceeași valoare de compensare. Și modificarea valorii unui membru va afecta valorile altor membri. O uniune poate fi utilizată atunci când doriți să stocați ceva care este unul din mai multe tipuri de date.

angajatul sindical {{ char name [32];

int age;

salariu flotant;

};

Aici cuvântul cheie "uniune" definește uniunea care este destul de similară cu declarația structurii. Variabila poate stoca fie o valoare de șir care este "numele angajatului", o valoare intregă care este "vârsta angajatului", fie un flotant care reprezintă "salariul angajatului".

Diferența dintre structură și Uniune

1. Cuvânt cheie

Cuvântul cheie "struct" este folosit pentru a defini o structură, în timp ce cuvântul cheie "union" este folosit pentru a defini o uniune.

2. Alocarea memoriei

Spațiul de memorie separat este alocat membrilor dintr-o structură, iar membrii au adrese diferite care nu partajează memoria. O uniune, pe de altă parte, împarte același spațiu de memorie pentru toți membrii săi, astfel încât locația de memorie partajată este alocată.

3. Accesul membrilor

O uniune stochează o singură valoare la un moment dat pentru ca toți membrii săi să facă acces la un singur membru la un moment dat. În timp ce mai multe valori pot fi stocate într-o structură, astfel încât orice valoare membru să poată fi accesată și recuperată în orice moment.

4. Dimensiunea

Dimensiunea unei structuri este egală cu suma mărimii tuturor membrilor sau mai multă, în timp ce mărimea unei uniuni este egală cu mărimea celui mai mare membru de mărime.

5. Inițializare

Într-o structură, mai mulți membri pot fi inițializați dintr-o dată, în timp ce într-o uniune, numai primul membru poate fi inițializat cu valoarea tipului său.

5. Valoarea

O structură poate stoca diferite valori ale tuturor membrilor și modificarea valorii unui membru nu va avea nici un efect asupra valorilor celorlalți membri. În timp ce o uniune stochează aceeași valoare pentru toți membrii ei și schimbarea valorii unui membru va afecta valoarea altora.

Structura vs. Uniune

Structura

Uniunea Cuvântul cheie Struct este utilizat pentru a defini o structură.
Cuvântul cheie al Uniunii este utilizat pentru a defini o uniune. Membrii nu împart memoria într-o structură.
Membrii împărtășesc spațiul de memorie într-o uniune. Orice membru poate fi preluat oricând într-o structură.
Numai un membru poate fi accesat la un moment dat într-o uniune. Mai mulți membri ai unei structuri pot fi inițializați imediat.
Numai primul membru poate fi inițializat. Dimensiunea structurii este egală cu suma mărimii fiecărui membru.
Mărimea unității este egală cu dimensiunea celui mai mare membru. Valoarea de modificare a unui membru nu va afecta valoarea altui membru.
Schimbarea valorii unui membru va afecta alte valori ale membrilor. stochează valori diferite pentru toți membrii.
stochează aceeași valoare pentru toți membrii. Rezumat

Atât structura, cât și uniunea sunt tipuri de date definite de utilizator în C care sunt funcționale și conceptual aceleași, dar sunt destul de diferite în unele moduri.

  • Ambele conțin variabile de diferite tipuri de date, dar folosesc aceeași sintaxă pentru declararea variabilelor și accesarea membrilor. În timp ce o structură este definită de cuvântul cheie "struct", o uniune este definită de cuvântul cheie "union".
  • Fiecare membru primește o locație separată de memorie într-o structură, în timp ce într-o uniune spațiul total de memorie este echivalent celui mai mare membru de dimensiune. Toți membrii au același spațiu de memorie într-o uniune.
  • Orice membru din orice secvență poate fi accesat într-o structură, în timp ce într-o uniune poate fi accesată numai acea variabilă a cărei valoare a fost stocată recent.