O que é estrutura?
Estrutura é um tipo de dados definido pelo usuário na linguagem de programação C que combina itens de dados logicamente relacionados de diferentes tipos de dados.
Todos os elementos da estrutura são armazenados em locais de memória contíguos. A variável de tipo de estrutura pode armazenar mais de um item de dados de vários tipos de dados em um nome.
Neste tutorial, você aprenderá:
- O que é estrutura?
- O que é união
- Sintaxe de declaração de estrutura
- Exemplo de estrutura na programação C
- Sintaxe de declaração de união
- Exemplo de União em Programação C
- Estrutura vs. União
- Vantagens de estrutura
- Vantagens da união
- Desvantagens de estrutura
- Desvantagens da união
O que é união
União é um tipo de dado definido pelo usuário, assim como uma estrutura. Union combina objetos de diferentes tipos e tamanhos. A variável de união aloca o espaço de memória igual ao espaço para conter a maior variável de união. Ele permite que vários tipos de objetos compartilhem o mesmo local.
Sintaxe de declaração de estrutura
struct [name of the structure]{type member1;type member2;type member3;};
A estrutura é declarada usando a palavra-chave "struct" e o nome da estrutura. Número 1, número 2, número 3 são membros individuais da estrutura. A parte do corpo é encerrada com um ponto e vírgula (;).
Exemplo de estrutura na programação C
#includestruct student {char name[60];int roll_no;float marks;} sdt;int main() {printf("Enter the following information:\n");printf("Enter student name: ");fgets(sdt.name, sizeof(sdt.name), stdin);printf("Enter student roll number: ");scanf("%d", & sdt. roll_no);printf("Enter students marks: ");scanf("%f", & sdt.marks);printf("The information you have entered is: \n");printf("Student name: ");printf("%s", sdt.name);printf("Student roll number: %d\n", sdt. roll_no);printf("Student marks: %.1f\n", sdt.marks);return 0;}
No programa acima, uma estrutura chamada aluno é criada. Essa estrutura tem três membros de dados: 1) nome (string), 2) roll_no (inteiro) e 3) marcas (flutuante).
Depois disso, uma variável de estrutura sdt é criada para armazenar informações do aluno e exibi-las na tela do computador.
Resultado:
Insira as seguintes informações:
Digite o nome do aluno: James
Digite o número do rolo do aluno: 21
Digite as notas dos alunos: 67
As informações que você inseriu são:
Nome do aluno: John
Número do rolo do aluno: 21
Notas do aluno: 67,0
Sintaxe de declaração de união
union [name of union]{type member1;type member2;type member3;};
A união é declarada usando a palavra-chave "união" e o nome da união. Número 1, número 2, número 3 são membros individuais do sindicato. A parte do corpo é encerrada com um ponto e vírgula (;).
Exemplo de União em Programação C
#includeunion item{int x;float y;char ch;};int main( ){union item it;it.x = 12;it.y = 20.2;it.ch = 'a';printf("%d\n", it.x);printf("%f\n", it.y);printf("%c\n", it.ch);return 0;}
Resultado:
1101109601
20.199892
uma
No programa acima, você pode ver que os valores de xey foram corrompidos. Apenas a variável ch imprime o resultado esperado. É porque, em união, a localização da memória é compartilhada entre todos os tipos de dados de membros.
Portanto, o único membro de dados cujo valor está armazenado no momento ocupará espaço na memória. O valor da variável ch foi finalmente armazenado, então o valor do resto das variáveis é perdido.
Estrutura vs. União
Aqui está a diferença importante entre estrutura e união:
Estrutura | União |
Você pode usar uma palavra-chave struct para definir uma estrutura. | Você pode usar uma palavra-chave sindicato para definir um sindicato. |
Cada membro da estrutura recebe uma localização de memória exclusiva. | Na união, um local de memória é compartilhado por todos os membros de dados. |
Alterar o valor de um membro de dados não afetará outros membros de dados na estrutura. | Mudar o valor de um membro de dados mudará o valor de outros membros de dados em união. |
Ele permite que você inicialize vários membros de uma vez. | Ele permite que você inicialize apenas o primeiro membro do sindicato. |
O tamanho total da estrutura é a soma do tamanho de cada membro de dados. | O tamanho total da união é o tamanho do maior membro de dados. |
É usado principalmente para armazenar vários tipos de dados. | É usado principalmente para armazenar um dos muitos tipos de dados disponíveis. |
Ele ocupa espaço para cada membro escrito em parâmetros internos. | Ele ocupa espaço para um membro com o maior tamanho escrito em parâmetros internos. |
Você pode recuperar qualquer membro de cada vez. | Você pode acessar um membro de cada vez no sindicato. |
Ele oferece suporte a matriz flexível. | Ele não oferece suporte a uma matriz flexível. |
Vantagens de estrutura
Aqui estão as vantagens / vantagens de usar a estrutura:
- As estruturas reúnem mais de um dado sobre o mesmo assunto no mesmo lugar.
- É útil quando você deseja reunir os dados de tipos de dados e parâmetros semelhantes, como nome, sobrenome, etc.
- É muito fácil de manter, pois podemos representar todo o registro usando um único nome.
- Na estrutura, podemos passar um conjunto completo de registros para qualquer função usando um único parâmetro.
- Você pode usar uma matriz de estrutura para armazenar mais registros com tipos semelhantes.
Vantagens da união
Aqui estão as vantagens / vantagens de usar o sindicato:
- Ocupa menos memória em comparação com a estrutura.
- Quando você usa união, apenas a última variável pode ser acessada diretamente.
- A união é usada quando você precisa usar o mesmo local de memória para dois ou mais membros de dados.
- Ele permite que você mantenha dados de apenas um membro de dados.
- Seu espaço alocado é igual ao tamanho máximo do membro de dados.
Desvantagens de estrutura
Aqui estão os contras / desvantagens de usar a estrutura:
- Se a complexidade do projeto de TI ultrapassa o limite, torna-se difícil de gerenciar.
- A mudança de uma estrutura de dados em um código exige mudanças em muitos outros lugares. Portanto, as mudanças tornam-se difíceis de rastrear.
- A estrutura é mais lenta porque requer espaço de armazenamento para todos os dados.
- Você pode recuperar qualquer membro por vez na estrutura, enquanto você pode acessar um membro por vez no sindicato.
- A estrutura ocupa espaço para cada membro escrito em parâmetros internos, enquanto a união ocupa espaço para um membro com o tamanho mais alto escrito em parâmetros internos.
- A estrutura oferece suporte a matriz flexível. Union não oferece suporte a uma matriz flexível.
Desvantagens da união
Aqui estão os contras / desvantagens do uso de união:
- Você pode usar apenas um membro do sindicato por vez.
- Todas as variáveis de união não podem ser inicializadas ou usadas com valores variáveis ao mesmo tempo.
- Union atribui um espaço de armazenamento comum para todos os seus membros.
PRINCIPAIS DIFERENÇAS:
- Cada membro dentro da estrutura é atribuído a um local de memória exclusivo, enquanto em união um local de memória é compartilhado por todos os membros de dados.
- Alterar o valor de um membro de dados não afetará outros membros de dados na estrutura, enquanto alterar o valor de um membro de dados mudará o valor de outros membros de dados em união.
- A estrutura é usada principalmente para armazenar vários tipos de dados, enquanto a união é usada principalmente para armazenar um dos muitos tipos de dados.
- Na estrutura, você pode recuperar qualquer membro por vez, por outro lado, no sindicato, você pode acessar um membro por vez.
- A estrutura oferece suporte a matriz flexível, enquanto a união não oferece suporte a uma matriz flexível.