União em c

União em c

Como a união da estrutura também é um conceito importante em c. Existem dois tipos que o tipo de dados existe em c. São tipos de dados primitivos e tipos de dados não primitivos ou definidos pelo usuário. Union é um exemplo de um tipo de dados não primitivo.

Quais são a união e seus principais recursos

União é uma maneira de agrupar variáveis. Às vezes temos que armazenar algumas informações em um grupo.

Suponha que tenhamos que armazenar informações de alguns alunos. Informações significa seu nome, endereço, móvel não, gênero, marcas, agregados, etc. Uma situação ocorre quando apenas um membro de dados desse grupo de variáveis ​​precisa conter um valor por vez. Nesta situação, se armazenarmos esses dados para as múltiplas variáveis ​​para cada aluno, o programa se tornará muito complexo e aumenta a velocidade de execução do programa.

Para reduzir esse problema, introduzimos união. Com a ajuda do sindicato, podemos agrupar essas variáveis ​​de cada aluno em uma única variável e conter um desses grupos de variáveis ​​por vez.

Union é uma coleção de elementos diferentes. Dissimilar significa que podemos armazenar diferentes valores de tipo de dados como int, char, flutuação, string, etc.

Se armazenarmos as informações de um aluno, temos que armazenar seu nome, marcas, móveis não, etc. Nome é uma string, mark é um flutuador, o celular não é uma matriz inteira. Portanto, é um grupo de elementos diferentes.

Definir Union significa criar um novo tipo de dados, E sabemos que criar um novo tipo de dados significa que usamos aqui o tipo de dados não primitivo.

Union é um tipo de dados definido pelo usuário, como estrutura. Mas os membros do sindicato compartilham o mesmo local de memória.

Exemplo

Exemplo da União


int x;
char y;
e;

Se imprimirmos o endereço de x e y., Eles podem conter o mesmo local de endereço

Pode existir diferentes tipos de membros de dados na união. Mas o tamanho da união é calculado de acordo com o maior membro de dados presente na união.

Exemplo de programação 1

#incluir
Item da União // Definindo outra União;

int x;
flutuar y;
char z;
;
int main ()

printf (" %d", sizeof (item da união));
retornar 0;

Saída

Explicação

Aqui definimos um sindicato chamado item. Os membros de dados desta união são x, y e z, que são dados inteiros, flutuantes e do tipo de caractere, respectivamente. Agora dentro da função principal (), usamos o tamanho do operador para determinar o tamanho do item do tipo de dados. Ele obtém a saída 4, pois o tipo de dados float é o maior tipo de dados presente na união como membro de dados.

Como definir uma união

Exemplo da União // Definindo uma União;

Tipo de dados VAR1;
Tipo de dados VAR2;
-------------------- ;
Tipo de dados Varn;
;
Item da União // Definindo outra União;

int x;
flutuar y;
char z;
;

Consumo de memória

Nenhuma memória é consumida para a definição de união. Porque a memória é consumida no momento da declaração de uma variável, mas não no caso de definir o tipo de dados.

Como definir sindicato significa criar um novo tipo de dados, a memória não é consumida. A memória é consumida no momento da declaração de um tipo específico de variável.

Estrutura vs. União

Item de item de estrutura Item

Item de item de estrutura Item

int x; int x;
flutuar y; flutuar y;
char z; char z;

Item I1 da estrutura; Item da União I1;

Explicação

Na estrutura, podemos criar o local da memória para um grupo de variáveis. Todo o membro de dados da estrutura contém memória em um momento.

Onde em uma união, podemos criar o bloco de memória da memória mais alta contém que existe como uma variável de membro.

Na estrutura, criamos uma estrutura que leva (2 + 4 + 1) = 7 bytes. Como número inteiro, flutuante, char leva 2, 4 e 1 byte memória, respectivamente.

Onde na união, criamos um sindicato que pega 4 bytes de bloco de memória, pois a variável de tipo de dados float existe aqui como a maior variável de membro do tipo de dados.

Vantagens da união

Com a ajuda do sindicato, podemos acessar quaisquer dados uma vez de cada vez. Se queremos acessar outra variável de membro, significa que a variável ou o valor da variável substitui o valor anterior de uma variável. Isso significa que é necessário o valor da mais recente variável que existe na união.

Exemplo de programação 2

#incluir
Item da União // Definindo outra União;

int x;
flutuar y;
char z;
;
int main ()

Item da União I1;
i1. x = 5;
printf (“\ n x = %d”, i1. x);
i1. y = 3. 5;
printf (“\ n y = %f”, i1. y);
i1. z = 'a';
printf (“\ n z = %c \ n”, i1. z);
retornar 0;

Saída

Explicação

A partir da saída, podemos ter a percepção errada de que a união consome espaço de memória (2 + 4 + 1) = 7 bytes. Mas é uma percepção errada. Porque quando usamos variável inteira, podemos usar isso. Em seguida, usamos a variável float; Essa variável substitui o valor de x.

Depois de usar o valor de y, se quisermos imprimir o valor de x novamente, ele recebe saída x = 0. Ele pode consumir a memória de uma variável a cada vez da maior variável de tipo de dados.

Exemplo de programação 3

#incluir
Exemplo da União // Definindo outra União;

int x;
char z;
; você;
int main ()

você. x = 65;
printf (“x = %d \ n”, u. x);
printf (“z = %c \ n”, u. z);
retornar 0;

Saída

Explicação

Aqui definimos um exemplo nomeado do sindicato. Dentro do sindicato, existem dois membros de dados que existem. Um é o tipo inteiro variável x; outro é o tipo de caractere variável z. Dentro da função Main (), X é atribuído 65.

Agora, se imprimirmos o valor de x, ele mostra um valor de 65. Surpreendentemente se imprimirmos o valor de y, ele mostra o resultado a. Como os membros dos dados da União compartilham o mesmo endereço de nossa memória e o valor binário de 65 é A, mostra o resultado a como um valor de personagem.

Conclusão

Como a união da estrutura também é um conceito importante em c. Através do sindicato, aprendemos que muitos membros ou variáveis ​​de dados podem compartilhar o mesmo local de endereço em nossa memória. Portanto, é uma característica única da união.