Diferença entre estrutura e união em C

Índice:

Diferença entre estrutura e união em C
Diferença entre estrutura e união em C

Vídeo: Diferença entre estrutura e união em C

Vídeo: Diferença entre estrutura e união em C
Vídeo: Estrutura de Dados (A famosa ED que todo dev tem que aprender) // Dicionário do Programador 2024, Novembro
Anonim

Key Difference – Estrutura vs União em C

Um array é uma estrutura de dados suportada pela linguagem C. Uma matriz pode ser usada para armazenar elementos de dados do mesmo tipo. Se houver uma declaração como int marcas [10]; então as marcas são uma matriz que pode armazenar dez marcas e todas elas são números inteiros. Às vezes é necessário armazenar elementos de dados de diferentes tipos no mesmo local de memória. Por exemplo, um funcionário pode ter um ID de funcionário, nome, departamento, idade etc. Eles são de diferentes tipos de dados. Portanto, é necessário ter um método para armazenar vários elementos de dados como uma única unidade. Estruturas e Uniões em C são usadas para armazenar elementos de dados de diferentes tipos no mesmo local de memória. Uma estrutura e uma união são semelhantes, mas diferenciam-se principalmente devido à alocação de memória. A memória necessária para armazenar uma variável de estrutura é a soma do tamanho da memória de todos os membros. A memória necessária para armazenar uma variável de união é a memória necessária para o maior elemento da união. Essa é a principal diferença entre estrutura e união em C. Este artigo discute a diferença entre estrutura e união em C.

O que é Estrutura em C?

Uma estrutura é um tipo de dados definido pelo usuário em C. Ela ajuda a combinar itens de dados de diferentes tipos. Uma estrutura pode representar registros. Um aluno pode ter student_id, student_name etc. Em vez de armazenar cada variável separadamente, todos esses diferentes itens de dados podem ser compactados em uma única unidade usando uma estrutura. Ele é definido usando a palavra-chave 'struct'. Em uma estrutura, todos os seus membros podem ser acessados a qualquer momento. O seguinte cria um tipo de dados derivado struct Student.

struct Aluno {

intstudent_id;

char nome_do aluno[20];

};

Para a estrutura acima, as variáveis podem ser declaradas da seguinte forma.

struct Aluno aluno1, aluno2, aluno3;

Existem dois métodos para acessar os membros da estrutura. Isso é usando o operador de membro (.) e o operador de ponteiro de estrutura (->). Os membros podem ser acessados usando structure_variable_name. nome do membro. Se o programador quiser acessar o nome do aluno 2, então ele pode escrever a declaração como printf(student2.student_name);

Consulte o programa abaixo com uma estrutura.

Diferença entre estrutura e união em C
Diferença entre estrutura e união em C

Figura 01: Programa em C com estruturas

De acordo com o programa acima, Aluno é uma estrutura. Ele contém student_id e student_name. Duas variáveis do tipo estrutura são declaradas no programa principal. Eles são chamados de aluno1 e aluno2. O ID do aluno1 é atribuído com o valor 1 usando o operador membro como student1.student_id=1. O nome “Ann” é uma string. Portanto, ele é copiado para o membro student_name usando a função de cópia de string strcpy. O id e o nome são atribuídos a student2 de maneira semelhante. Finalmente, esses valores são impressos usando o operador membro.

A quantidade de memória necessária para armazenar uma variável de estrutura é a soma do tamanho da memória de todos os membros. O student_id contém 4 bytes e student_name contém 20 bytes (um byte para cada caractere). O total de 24 bytes é a soma do tamanho da memória exigida pela estrutura.

O que é União em C?

Uma união é um tipo de dados definido pelo usuário em C. Ela ajuda a armazenar diferentes tipos de dados no mesmo local de memória. Um livro pode ter propriedades como nome_do_livro, preço etc. Em vez de criar variáveis para cada uma delas, uma união pode ser usada para compactar todos os diferentes tipos de dados em uma unidade usando uma união. Ele é definido usando a palavra-chave 'união'. O seguinte cria um livro de união de dados derivado.

unionBook{

nome do caractere[20];

preço duplo;

};

Para a união acima, as variáveis podem ser declaradas da seguinte forma.

união Livro livro1, livro2;

Existem dois métodos para acessar os membros do sindicato. Isso é usando o operador de membro (.) e o operador de ponteiro de estrutura (->). Os membros podem ser acessados usando union_variable_name. nome do membro. Se o programador quiser acessar o nome do livro1, ele pode escrever a instrução como printf(book1.name);

Consulte o programa abaixo com uma união.

Diferença entre Estrutura e União em C_Figura 02
Diferença entre Estrutura e União em C_Figura 02

Figura 02: Programa em C usando união

De acordo com o programa acima, o Livro é uma união. O livro1 é uma variável do tipo união. O nome e o preço são valores atribuídos. Na união, apenas um de seus membros pode ser acessado por vez e todos os outros membros terão valores lixo. O valor de id não é impresso corretamente, mas o valor de preço é impresso corretamente.

Diferença chave entre estrutura e união em C
Diferença chave entre estrutura e união em C

Figura 03: Programa C modificado com união

De acordo com o programa acima, Livro é uma união. O book1 e book2 são variáveis do tipo união. Primeiro, o valor para o nome do livro1 é atribuído e impresso. Em seguida, o valor para o nome do livro2 é atribuído e impresso. Todos os membros imprimem corretamente porque um membro está sendo usado por vez. A memória necessária para armazenar uma união é a memória necessária para o maior elemento da união. No programa acima, a variável de nome é de 20 bytes. É maior que o preço. Portanto, a alocação de memória para a união é de 20 bytes.

Quais são as semelhanças entre estrutura e união em C?

  • Tanto a estrutura quanto a união em C são tipos de dados definidos pelo usuário.
  • Tanto a estrutura quanto a união em C podem ser usadas para armazenar diferentes tipos de dados no mesmo local de memória.

Qual é a diferença entre estrutura e união em C?

Estrutura vs União em C

Estrutura é um tipo de dados definido pelo usuário em linguagem C que permite combinar dados de diferentes tipos juntos. Union é um tipo de dados definido pelo usuário em linguagem C que permite combinar dados de diferentes tipos juntos.
Acessibilidade
Em uma estrutura, todos os seus membros podem ser acessados a qualquer momento. Em uma união, apenas um de seus membros pode ser acessado por vez e todos os outros membros conterão valores lixo.
Alocação de Memória
A memória necessária para armazenar uma variável de estrutura é a soma do tamanho da memória de todos os membros. A memória necessária para armazenar uma variável de união é a memória necessária para o maior elemento da união.
Palavra-chave
A palavra-chave usada para definir uma estrutura é 'struct'. A palavra-chave usada para definir uma união é 'união'.

Resumo – Estrutura vs União em C

Um array é usado para armazenar os elementos de dados do mesmo tipo. Às vezes é necessário armazenar elementos de dados de diferentes tipos na mesma posição de memória. A linguagem de programação C fornece estrutura e união para realizar essa tarefa. Ambos são tipos de dados definidos pelo usuário. A memória necessária para armazenar uma variável de estrutura é a soma do tamanho da memória de todos os membros. A memória necessária para armazenar uma variável de união é a memória necessária para o maior elemento da união. Esta é a diferença entre estrutura e união em C.

Recomendado: