Diferența dintre structură și unire în C

Cuprins:

Diferența dintre structură și unire în C
Diferența dintre structură și unire în C

Video: Diferența dintre structură și unire în C

Video: Diferența dintre structură și unire în C
Video: Care e diferența dintre conexpand și ancoră chimică? 2024, Noiembrie
Anonim

Diferența cheie – Structură vs Uniune î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 declarație ca int marchează [10]; atunci mărcile 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, nume, departament, vârstă etc. Sunt de diferite tipuri de date. Prin urmare, este necesar să existe o metodă de stocare a diferitelor elemente de date ca o singură unitate. Structurile și uniunile în 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 stocarea unei variabile de unire este memoria necesară pentru cel mai mare element din unire. Aceasta este diferența cheie dintre structură și unire în C. Acest articol discută diferența dintre structură și unire în C.

Ce este Structura în C?

O structură este un tip de date definit de utilizator în C. Ajută la combinarea elementelor 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 acesteia pot fi accesați în orice moment. Următoarele creează un tip de date derivat struct Student.

struct Student {

intstudent_id;

car student_name[20];

};

Pentru structura de mai sus, variabilele pot fi declarate după cum urmează.

struct Student student1, student2, student3;

Există două metode de a accesa membrii structurii. Adică utilizând operatorul membru (.) și operatorul indicator al structurii (->). Membrii pot fi accesați folosind structure_variable_name. numele membrului. Dacă programatorul dorește să acceseze numele studentului 2, atunci el poate scrie instrucțiunea ca printf(student2.student_namename);

Consultați programul de mai jos cu o structură.

Diferența dintre structură și unire în C
Diferența dintre structură și unire în C

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 studentului1 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 a șirurilor strcpy. Id-ul și numele sunt atribuite student2 într-un mod similar. În cele din urmă, acele valori sunt tipărite folosind operatorul membru.

Cantitatea de memorie necesară pentru a stoca o variabilă de structură este suma mărimii memoriei tuturor membrilor. Student_id conține 4 octeți și student_name conține 20 de octeți (un octet fiecare pentru un caracter). Totalul de 24 de octeți este suma dimensiunii memoriei cerute de structură.

Ce este uniunea în C?

O unire 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 nume_book, preț etc. În loc să creeze variabile pentru fiecare dintre ele, o uniune poate fi folosită pentru a compacta toate tipurile de date diferite într-o singură unitate folosind o uniune. Este definită folosind cuvântul cheie „union”. Următoarele creează o carte de uniuni de date derivate.

unionBook{

car nume[20];

preț dublu;

};

Pentru uniunea de mai sus, variabilele pot fi declarate după cum urmează.

union Cartea carte1, cartea2;

Există două metode de acces la membrii sindicatului. Adică utilizând operatorul membru (.) și operatorul indicator al structurii (->). Membrii pot fi accesați folosind union_variable_name. numele membrului. Dacă programatorul dorește să acceseze numele cărții1, atunci el poate scrie declarația ca printf(book1.name);

Consultați programul de mai jos cu un sindicat.

Diferența dintre structură și unire în C_Figura 02
Diferența dintre structură și unire în C_Figura 02

Figura 02: programul C folosind union

Conform programului de mai sus, Cartea este o uniune. Book1 este o variabilă de tip unire. Numele și prețul sunt valori atribuite. În unire, doar unul dintre membrii săi poate fi accesat la un moment dat și toți ceilalți membri vor avea valori de gunoi. Valoarea id-ului nu se tipărește corect, dar valoarea prețului se tipărește corect.

Diferența cheie între structură și unire în C
Diferența cheie între structură și unire în C

Figura 03: Program C modificat cu uniunea

Conform programului de mai sus, Book este o uniune. Book1 și book2 sunt variabile de tip uniune. În primul rând, valoarea pentru numele cărții 1 este atribuită și este tipărită. Apoi valoarea pentru numele cărții 2 este atribuită și este tipărită. Toți membrii tipăresc corect, deoarece un membru este utilizat odată. Memoria necesară pentru stocarea unei uniuni este memoria necesară pentru cel mai mare element al uniunii. În programul de mai sus, variabila nume este de 20 de octeți. Este mai mare decât prețul. Deci, alocarea memoriei pentru unire este de 20 de octeți.

Care sunt asemănările dintre structură și unire în C?

  • Atât Structura, cât și Unirea în C sunt tipuri de date definite de utilizator.
  • Atât Structura, cât și Unirea în C pot fi folosite pentru a stoca diferite tipuri de date în aceeași locație de memorie.

Care este diferența dintre structură și unire în C?

Structură vs Uniune în C

Structura este un tip de date definit de utilizator în limbaj C care permite combinarea de date de diferite tipuri împreună. Union este un tip de date definit de utilizator în limbaj C care permite combinarea de date de diferite tipuri împreună.
Accesibilitate
Într-o structură, toți membrii acesteia pot fi accesați în orice moment. Într-o uniune, numai unul dintre membrii săi poate fi accesat la un moment dat, iar toți ceilalți membri vor conține valori nefolositoare.
Alocare memorie
Memoria necesară pentru a stoca o variabilă de structură este însumarea dimensiunii memoriei tuturor membrilor. Memoria necesară pentru stocarea unei variabile de unire este memoria necesară pentru cel mai mare element din unire.
Cuvânt cheie
Cuvântul cheie folosit pentru a defini o structură este „struct”. Cuvântul cheie folosit pentru a defini o uniune este „unire”.

Rezumat – Structura vs Uniune în C

O matrice este folosită 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 unire pentru a îndeplini această sarcină. 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 stocarea unei variabile de unire este memoria necesară pentru cel mai mare element din unire. Aceasta este diferența dintre structură și unire în C.

Recomandat: