Introdução aos registros (Structs)

Produzido por Gustavo Barbosa
Ver Todos os Exercícios

Teoria

Introdução

Fala aí, aqui é o Guga do Responde Aí! Tudo bem com você?

Para começar, imagine que você esteja desenvolvendo um programa para a administração da sua faculdade. Por se tratar de uma faculdade, esse programa deve ter como dados informações sobre todos os alunos matriculado como: nome, telefone, endereço etc. Como você faria para juntar todas essas informações relacionando-as a um único aluno?

Vamos imaginar que nós dois temos que desenvolver um programa para a parte administrativa da faculdade, mais especificamente para a gestão dos alunos. Esse programa deve ter os dados de todos os alunos que estão matriculados na faculdade, como: nome, telefone, endereço etc.

Dado que cada aluno deve ter o seu registro próprio, como nós podemos unir todas essas informações pessoais e armazená-las unicamente para cada aluno?

Parece coisa de outro mundo, né?

Nesse tópico nós iremos conversar um pouquinho sobre os registros (também conhecidos como structs), eles são muito úteis em casos como o descrito anteriormente. Então, sem perder tempo vamos entender de vez esse novo conceito de programação!

Struct

Eu não sei se você percebeu, mas as denominações struct e registro sempre andam juntas, pois as mesmas são análogas em programação. Entretanto, qual é o motivo dessa semelhança?

De forma bem direta ao ponto, isso acontece porque assim como nos registros, uma struct é composta por diversos campos.

Por exemplo, vamos relembrar o problema descrito na introdução e analisarmos como ele é resolvido na realidade.

Simples demais!

A faculdade possui diversos formulários preenchidos sobre cada aluno. Mas pensa comigo, um formulário nada mais é do que o registro de um aluno composto pelos campos nome, telefone, endereço etc.

Sentiu o brainstorm?

O mesmo acontece quando analisamos a linguagem C, onde uma struct é capaz de organizar uma estrutura com as informações pessoais de cada aluno (campos) em variáveis, para posteriormente ser utilizada de forma única com o objetivo de armazenar os dados de cada aluno.

Vamos dar uma olhada em um outro exemplo!

E se agora nós estivéssemos desenvolvendo um programa para uma empresa de entrega (a gente tem futuro como uma dupla programadora, hein!?) e tivéssemos que armazenar os seguintes dados de alguns usuários: rua, bairro, cidade, estado e número. O que faríamos para programar essa união de dados?

Basta criarmos uma struct chamada endereco com todos os campos necessários, dessa forma poderíamos armazenar unicamente diferentes endereços utilizando a mesma estrutura.

E como a gente faz isso? Uma dica, é só olhar aqui embaixo!

Criando uma struct

A criação de uma struct é bastante simples, utilizando como exemplo o mesmo registro endereco que criamos anteriormente, utilizaríamos o seguinte trecho de código para cria-lo:

Não se preocupe, vou te explicar direitinho o que está acontecendo.

Basicamente, nós acabamos de definir uma estrutura (struct) endereco com os seguintes campos: rua, bairro, cidade, estado e numero. Observe que a declaração dos campos de uma struct é feita exatamente da mesma forma que a declaração de variáveis, ou seja, necessitam de um tipo, nome, e, no caso das strings (vetores de caracteres), de um tamanho.

Para ficar ainda mais fácil, abaixo temos um exemplo geral de declaração de estruturas na linguagem C:

Mas até então nós só temos uma estrutura, como tornamos essa única estrutura capaz de armazenar o endereço de uma faculdade, por exemplo? Simples, basta realizarmos a sua declaração:

Com isso nós temos uma variável end_faculdade que armazena uma estrutura endereco e pode ser manipulada, nesse contexto, para armazenar e disponibilizar as informações de endereço sobre uma faculdade específica.

E se precisarmos utilizar diversas variáveis dessa estrutura?

Podemos utilizar o comando de redefinição de tipo typedef para criarmos um tipo referente a uma determinada estrutura. Nesse caso, a estrutura e n d e r e c o :

Agora somos capazes de criar inúmeras variáveis do tipo e n d _ f a c u l d a d e , que nada mais é do que um tipo ou “apelido” da estrutura e n d e r e c o .

Esse conceito pode parecer meio diferente, mas ele é muito importante e útil na programação. Então, não se esqueça de fazer os exercícios de fixação!

Te espero na página aqui do lado, parceiro(a).

Struct

Criando uma struct