Diferència entre estructura i unió en C

Taula de continguts:

Diferència entre estructura i unió en C
Diferència entre estructura i unió en C

Vídeo: Diferència entre estructura i unió en C

Vídeo: Diferència entre estructura i unió en C
Vídeo: Estructuras en C - Uso de typedef 2024, Desembre
Anonim

Diferència clau: estructura vs unió en C

Una matriu és una estructura de dades compatible amb el llenguatge C. Es pot utilitzar una matriu per emmagatzemar elements de dades del mateix tipus. Si hi ha una declaració com int marca [10]; llavors les marques són una matriu que pot emmagatzemar deu marques i totes són nombres enters. De vegades cal emmagatzemar elements de dades de diferents tipus en la mateixa ubicació de memòria. Per exemple, un empleat pot tenir un identificador d'empleat, nom, departament, edat, etc. Són de diferents tipus de dades. Per tant, és necessari disposar d'un mètode per emmagatzemar diversos elements de dades com una sola unitat. Les estructures i les unions en C s'utilitzen per emmagatzemar elements de dades de diferents tipus en la mateixa ubicació de memòria. Una estructura i una unió són semblants però es diferencien principalment per l'assignació de memòria. La memòria necessària per emmagatzemar una variable d'estructura és la suma de la mida de la memòria de tots els membres. La memòria necessària per emmagatzemar una variable d'unió és la memòria necessària per a l'element més gran de la unió. Aquesta és la diferència clau entre estructura i unió en C. En aquest article es parla de la diferència entre estructura i unió en C.

Què és l'estructura en C?

Una estructura és un tipus de dades definit per l'usuari en C. Ajuda a combinar elements de dades de diferents tipus. Una estructura pot representar registres. Un estudiant pot tenir student_id, student_name, etc. En lloc d'emmagatzemar cada variable per separat, tots aquests elements de dades diferents es poden compactar en una sola unitat mitjançant una estructura. Es defineix mitjançant la paraula clau "struct". En una estructura, es pot accedir a tots els seus membres en qualsevol moment. A continuació es crea un tipus de dades derivat struct Student.

struct Estudiant {

intstudent_id;

char student_name[20];

};

Per a l'estructura anterior, les variables es poden declarar de la manera següent.

struct Estudiant estudiant1, estudiant2, estudiant3;

Hi ha dos mètodes per accedir als membres de l'estructura. És a dir, utilitzant l'operador membre (.) i l'operador de punter d'estructura (->). Es pot accedir als membres mitjançant structure_variable_name. nom de membre. Si el programador vol accedir al nom de l'estudiant 2, pot escriure la instrucció com a printf(student2.student_name);

Consulteu el programa següent amb una estructura.

Diferència entre estructura i unió a C
Diferència entre estructura i unió a C

Figura 01: programa C amb estructures

Segons el programa anterior, Student és una estructura. Conté student_id i student_name. Al programa principal es declaren dues variables de tipus d'estructura. S'anomenen alumne1 i estudiant2. L'identificador de l'estudiant1 s'assigna amb el valor 1 mitjançant l'operador membre com a student1.student_id=1. El nom "Ann" és una cadena. Per tant, es copia al membre student_name mitjançant la funció de còpia de cadena strcpy. L'identificador i el nom s'assignen a student2 d'una manera similar. Finalment, aquests valors s'imprimeixen mitjançant l'operador membre.

La quantitat de memòria necessària per emmagatzemar una variable d'estructura és la suma de la mida de la memòria de tots els membres. Student_id conté 4 bytes i student_name conté 20 bytes (un byte cadascun per un caràcter). El total de 24 bytes és la suma de la mida de memòria requerida per l'estructura.

Què és Union en C?

Una unió és un tipus de dades definit per l'usuari en C. Ajuda a emmagatzemar diferents tipus de dades a la mateixa ubicació de memòria. Un llibre pot tenir propietats com book_name, preu, etc. En lloc de crear variables per a cadascun d'ells, es pot utilitzar una unió per compactar tots els diferents tipus de dades en una unitat mitjançant una unió. Es defineix mitjançant la paraula clau "unió". A continuació es crea un llibre d'unió de dades derivades.

unionBook{

nom de caràcter[20];

preu doble;

};

Per a la unió anterior, les variables es poden declarar de la manera següent.

union Book book1, book2;

Hi ha dos mètodes per accedir als membres del sindicat. És a dir, utilitzant l'operador membre (.) i l'operador de punter d'estructura (->). Es pot accedir als membres mitjançant union_variable_name. nom de membre. Si el programador vol accedir al nom del llibre1, pot escriure la declaració com a printf(nom del llibre1);

Consulteu el programa següent amb un sindicat.

Diferència entre estructura i unió a C_Figura 02
Diferència entre estructura i unió a C_Figura 02

Figura 02: programa C que utilitza union

Segons el programa anterior, el Llibre és una unió. El llibre1 és una variable de tipus unió. El nom i el preu són valors assignats. En unió, només es pot accedir a un dels seus membres alhora i tots els altres membres tindran valors d'escombraries. El valor de l'identificador no s'imprimeix correctament, però el valor del preu s'imprimeix correctament.

Diferència clau entre estructura i unió a C
Diferència clau entre estructura i unió a C

Figura 03: programa C modificat amb unió

Segons el programa anterior, Book és una unió. El llibre1 i el llibre2 són variables de tipus unió. En primer lloc, s'assigna el valor del nom del llibre1 i s'imprimeix. Aleshores s'assigna el valor del nom del llibre2 i s'imprimeix. Tots els membres imprimeixen correctament perquè s'utilitza un membre alhora. La memòria necessària per emmagatzemar una unió és la memòria necessària per a l'element més gran de la unió. Al programa anterior, la variable de nom és de 20 bytes. És més gran que el preu. Per tant, l'assignació de memòria per a la unió és de 20 bytes.

Quines són les similituds entre l'estructura i la unió en C?

  • Tant l'Estructura com la Unió en C són tipus de dades definides per l'usuari.
  • Tant l'Estructura com la Unió en C es poden utilitzar per emmagatzemar diferents tipus de dades a la mateixa ubicació de memòria.

Quina diferència hi ha entre l'estructura i la unió en C?

Structure vs Union en C

Structure és un tipus de dades definit per l'usuari en llenguatge C que permet combinar dades de diferents tipus. Union és un tipus de dades definit per l'usuari en llenguatge C que permet combinar dades de diferents tipus.
Accessibilitat
En una estructura, es pot accedir a tots els seus membres en qualsevol moment. En un sindicat, només es pot accedir a un dels seus membres alhora i tots els altres membres tindran valors d'escombraries.
Asignació de memòria
La memòria necessària per emmagatzemar una variable d'estructura és la suma de la mida de la memòria de tots els membres. La memòria necessària per emmagatzemar una variable d'unió és la memòria necessària per a l'element més gran de la unió.
Paraula clau
La paraula clau utilitzada per definir una estructura és "struct". La paraula clau utilitzada per definir una unió és "unió".

Resum: Estructura vs Unió en C

S'utilitza una matriu per emmagatzemar els elements de dades del mateix tipus. De vegades és necessari emmagatzemar elements de dades de diferents tipus en la mateixa ubicació de memòria. El llenguatge de programació C proporciona estructura i unió per dur a terme aquesta tasca. Tots dos són tipus de dades definides per l'usuari. La memòria necessària per emmagatzemar una variable d'estructura és la suma de la mida de la memòria de tots els membres. La memòria necessària per emmagatzemar una variable d'unió és la memòria necessària per a l'element més gran de la unió. Aquesta és la diferència entre estructura i unió en C.

Recomanat: