Diferența cheie - Structura vs Uniunea în C
O matrice este o structură de date acceptată de limbajul C. O matrice poate fi utilizată pentru a stoca elemente de date de același tip. Dacă există o afirmație ca mărci int [10]; atunci marcajele sunt o matrice care poate stoca zece mărci și toate sunt numere întregi. Uneori este necesar să stocați elemente de date de diferite tipuri în aceeași locație de memorie. De exemplu, un angajat poate avea un ID de angajat, un nume, un departament, o vârstă etc. Acestea sunt de diferite tipuri de date. Prin urmare, este necesar să aveți o metodă pentru a stoca diferite elemente de date ca o singură unitate. Structurile și uniunile din C sunt utilizate pentru stocarea elementelor de date de diferite tipuri în aceeași locație de memorie. O structură și o uniune sunt similare, dar se diferențiază în principal datorită alocării memoriei. Memoria necesară pentru a stoca o variabilă de structură este însumarea dimensiunii memoriei tuturor membrilor. Memoria necesară pentru a stoca o variabilă de uniune este memoria necesară pentru cel mai mare element din uniune. Aceasta este diferența cheie între structură și uniune în C. Acest articol discută despre diferența dintre structură și uniune în C.
CUPRINS
1. Prezentare generală și diferența cheie
2. Ce este structura în C
3. Ce este uniunea în C
4. Asemănări între structură și uniunea în C
5. Comparație side by side - Structură vs uniune în C în formă tabelară
6. Rezumat
Ce este structura în C?
O structură este un tip de date definit de utilizator în C. Ajută la combinarea articolelor de date de diferite tipuri. O structură poate reprezenta înregistrări. Un student poate avea student_id, student_name etc. În loc să stocheze fiecare variabilă separat, toate aceste elemente de date diferite pot fi compacte într-o singură unitate folosind o structură. Este definit folosind cuvântul cheie „struct”. Într-o structură, toți membrii săi pot fi accesați în orice moment. Următorul creează un tip de date derivat struct Student.
struct Student {
intstudent_id;
char student_name [20];
};
Pentru structura de mai sus, variabilele pot fi declarate după cum urmează.
struct Student student1, student2, student3;
Există două metode pentru a accesa membrii structurii. Asta utilizând operatorul membru (.) Și operatorul indicatorului de structură (->). Membrii pot fi accesați folosind structure_variable_name. numele membrului. Dacă programatorul dorește să acceseze numele studentului 2, atunci poate scrie declarația ca printf (student2.student_namename);
Consultați programul de mai jos cu o structură.
Figura 01: Program C cu structuri
Conform programului de mai sus, Student este o structură. Conține student_id și student_name. Două variabile de tip structură sunt declarate în programul principal. Se numesc student1 și student2. ID-ul student1 este atribuit cu valoarea 1 folosind operatorul membru ca student1.student_id = 1. Numele „Ann” este un șir. Prin urmare, este copiat în membrul student_name folosind funcția de copiere șir strcpy. ID-ul și numele sunt atribuite studentului2 într-un mod similar. În cele din urmă, aceste valori sunt tipărite utilizând operatorul membru.
Cantitatea de memorie necesară pentru a stoca o variabilă de structură este suma dimensiunii memoriei tuturor membrilor. Student_id conține 4 octeți, iar student_name conține 20 de octeți (câte un octet pentru un caracter). Totalul de 24 de octeți este suma dimensiunii memoriei cerute de structură.
Ce este Uniunea în C?
O uniune este un tip de date definit de utilizator în C. Ajută la stocarea diferitelor tipuri de date în aceeași locație de memorie. O carte poate avea proprietăți precum book_name, preț etc. În loc să creeze variabile pentru fiecare dintre ele, o uniune poate fi utilizată pentru a compacta toate tipurile de date diferite într-o singură unitate folosind o uniune. Este definit utilizând cuvântul cheie „uniune”. Următorul creează o carte derivată a uniunii de date.
unionBook {
numele char [20];
pret dublu;
};
Pentru uniunea de mai sus, variabilele pot fi declarate după cum urmează.
uniune Book book1, book2;
Există două metode pentru a accesa membrii sindicatului. Asta utilizând operatorul membru (.) Și operatorul indicatorului de structură (->). Membrii pot fi accesați folosind union_variable_name. numele membrului. Dacă programatorul dorește să acceseze numele cărții1, atunci poate scrie declarația ca printf (book1.name);
Consultați programul de mai jos cu un sindicat.
Figura 02: Program C folosind uniunea
Conform programului de mai sus, Cartea este o uniune. Cartea 1 este o variabilă de tip union. Numele și prețul au valori atribuite. În uniune, doar unul dintre membrii săi poate fi accesat simultan și toți ceilalți membri vor avea valori de gunoi. Valoarea idului nu se imprimă corect, dar valoarea prețului se imprimă corect.
Figura 03: Program C modificat cu uniune
Conform programului de mai sus, Book este o uniune. Book1 și book2 sunt variabile de tip uniune. În primul rând, valoarea pentru numele book1 este atribuită și este tipărită. Apoi se atribuie valoarea pentru numele book2 și este tipărită. Toți membrii se imprimă corect, deoarece un membru este utilizat la un moment dat. Memoria necesară pentru a stoca o uniune este memoria necesară pentru cel mai mare element al uniunii. În programul de mai sus, variabila de nume este de 20 de octeți. Este mai mare decât prețul. Deci, alocarea memoriei pentru uniune este de 20 de octeți.
Care sunt asemănările dintre structură și uniune în C?
- Atât structura, cât și uniunea în C sunt tipuri de date definite de utilizator.
- Atât Structura, cât și Uniunea în C pot fi utilizate pentru a stoca diferite tipuri de date în aceeași locație de memorie.
Care este diferența dintre structură și uniune în C?
Difuzarea articolului din mijloc înainte de tabel
Structura vs Uniunea în C |
|
Structura este un tip de date definit de utilizator în limbajul C care permite combinarea de date de diferite tipuri împreună. | Uniunea este un tip de date definit în limbajul C care permite utilizatorului să combine date de diferite tipuri împreună. |
Accesibilitate | |
Într-o structură, toți membrii săi pot fi accesați oricând. | Într-o uniune, doar unul dintre membrii săi poate fi accesat simultan și toți ceilalți membri vor conține valori de gunoi. |
Alocare de memorie | |
Memoria necesară pentru a stoca o variabilă de structură este însumarea dimensiunii memoriei tuturor membrilor. | Memoria necesară pentru a stoca o variabilă de uniune este memoria necesară pentru cel mai mare element din uniune. |
Cuvânt cheie | |
Cuvântul cheie folosit pentru a defini o structură este „struct”. | Cuvântul cheie folosit pentru a defini o uniune este „uniune”. |
Rezumat - Structura vs Uniunea în C
O matrice este utilizată pentru a stoca elementele de date de același tip. Uneori este necesar să stocați elemente de date de diferite tipuri în aceeași locație de memorie. Limbajul de programare C oferă structură și uniune pentru îndeplinirea acestei sarcini. Ambele sunt tipuri de date definite de utilizator. Memoria necesară pentru a stoca o variabilă de structură este însumarea dimensiunii memoriei tuturor membrilor. Memoria necesară pentru a stoca o variabilă de uniune este memoria necesară pentru cel mai mare element din uniune. Aceasta este diferența dintre structură și uniune în C.