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

Diferença Chave - Estrutura vs União em C

Um array é um dado estruturado com suporte em linguagem C. Uma matriz pode ser usada para armazenar elementos de dados do mesmo tipo. Se houver uma declaração como marcas int [10]; então as marcas são uma matriz que pode armazenar dez marcas e todas elas são 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 têm 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 se diferenciam 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 na 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.

CONTEÚDO

1. Visão geral e diferença principal

2. O que é estrutura em C

3. O que é união em C

4. Semelhanças entre estrutura e união em C

5. Comparação lado a lado - Estrutura vs União em C na forma tabular

6. Resumo

O que é estrutura em C?

Uma estrutura é um tipo de dados definido pelo usuário em C. 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 itens de dados diferentes podem ser compactados em uma única unidade usando uma estrutura. É definido com 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 Student {

intstudent_id;

char student_name [20];

};

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

struct Student student1, student2, student3;

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, ele pode escrever a declaração como printf (aluno2.student_namename);

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 C com estruturas

De acordo com o programa acima, o Aluno é uma estrutura. Ele contém student_id e student_name. Duas variáveis de tipo de estrutura são declaradas no programa principal. Eles são chamados de aluno1 e aluno2. O id de student1 é atribuído com o valor 1 usando o operador de 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 o 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. Ajuda a armazenar diferentes tipos de dados no mesmo local de memória. Um livro pode ter propriedades como book_name, preço etc. Em vez de criar variáveis para cada um deles, 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 derivados.

unionBook {

nome do char [20];

preço duplo;

};

Para a união acima, as variáveis podem ser declaradas como segue.

sindicato 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 deseja acessar o nome do livro1, ele pode escrever a declaração como printf (livro1.nome);

Consulte o programa abaixo com um sindicato.

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 C usando união

De acordo com o programa acima, o Livro é um sindicato. O book1 é 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 de lixo. O valor de id não é impresso corretamente, mas o valor do preço é impresso corretamente.

KeyDifference Between Structure and Union in C
KeyDifference Between Structure and Union in C

Figura 03: Programa C modificado com união

De acordo com o programa acima, o Livro é um sindicato. O book1 e o 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 são impressos 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 tem 20 bytes. É maior do 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?

  • Estrutura e 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?

Artigo Diff meio antes da tabela

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. Union é um tipo de dados definido pelo usuário em linguagem C que permite combinar dados de diferentes tipos.
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 ilegíveis.
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 na 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

Uma matriz é usada para armazenar os elementos de dados do mesmo tipo. Às vezes, é necessário armazenar elementos de dados de diferentes tipos no mesmo local 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 na união. Esta é a diferença entre estrutura e união em C.

Recomendado: