Imagina a trabalheira de, ao invés de usar strings, usar
variáveis do tipo char isoladamente?
Não dá nem pra pensar, não é?
Mas vetores têm uma limitação: eles possuem um tipo
definido.
Ou o vetor é de char, ou de inteiros, ou de floats etc.
Ou seja, vetores não podem ser usados com tipos diferentes.
Vamos ensinar agora as structs, que servem para manusear uma quantidade maior de
informações de uma maneira mais simples, eficiente e de tipos diferentes.
- Download do curso: Apostila C Progressivo
Para que serve uma struct em C
Vamos supor que você foi contratado por uma grande
empresa para criar um aplicativo de C que armazena todas as informações dos
funcionários, um banco de dados.
Como você faria para armazenar as idades deles?
Vamos supor que tem 300 funcionários.
Ora, você já sabe que não vai declarar inteiro por
inteiro, então vamos declarar um vetor de idades:
int idades[300];
E os nomes? Vamos separar 50 caracteres para cada pessoa.
Temos que ter 300 vetores (strings), cada um com 50
caracteres. Ficaria:
char nomes[300][50];
O mesmo para sua data de admissão, o salário de cada um,
seus números de identificação, horários, cargos etc.
Mas como você faria saber as informações de um
funcionário especificamente?
Poderíamos pegar cada posição para uma pessoa. Por
exemplo, o funcionário Bruce Dickinson seria o de número 50.
Ou seja, para pegar o nome dele, vá para a posição 49 da
matriz de strings.
Para saber o salário dele, vá na posição de número 49 do
vetor de floats que representa os salários. Na posição 49 do vetor de inteiros
podemos obter a idade deles e assim vai.
Isso tudo é possível, mas extremamente trabalhoso,
confuso e nada organizado.
É para isso que existem as structs.
O que é uma struct em C
Struct, ou estrutura, é um bloco que armazenam diversas
informações.
Poderíamos criar uma estrutura para cada funcionário, e
dentro dessa estrutura tem variável do tipo int (para idade), do tipo string
(para armazenar o nome), têm floats (que armazenam o salário de cada um), etc.
E cada estrutura teria um nome, que seria algo relacionado com o funcionário.
Assim, sempre que quiséssemos um dado de um funcionário,
bastaríamos ter acesso a estrutura dele, e todas as informações viriam juntas.
Essas estruturas, ou structs, podem ter quantos elementos
você queira e dos tipos que você quiser. Você primeiro define a estrutura, seu
nome e elementos.
Depois você escolhe quantos elementos daquela estrutura
quer ter, e os declara com nomes diferentes.
Após isso, em vez de você manipular as milhares de
variáveis dos mais diversos tipos que tenha criado, você trabalha só com a
estrutura.
Assim não tem que se ‘estressar’ com cada detalhe da
estrutura. Esses detalhes são definidos somente uma vez, na declaração da
estrutura.
Onde as structs em C são usadas
Structs são muito usadas quando temos elementos em nossos
programas que precisam e fazem uso de vários tipos de variáveis e
características.
Usando struct,
podemos trabalhar com vários tipos de informações de uma maneira mais fácil,
rápida e organizada, uma vez que não temos que nos preocupar em declarar e
decorar o nome de cada elemento da struct.
Por exemplo, vamos supor que você foi contratado para
criar um aplicativo de uma escola.
As structs servem para você organizar as informações de
uma maneira mais otimizada.
Para isso, basta colocarmos as informações comuns na
estrutura.
Quais seriam os elementos comuns que deveríamos colocar
nessa estrutura?
Ora, vamos trabalhar com alunos, então temos que colocar
elementos na struct que representem os alunos: nome, notas, mensalidade, se
esta mensalidade foi paga ou não etc.
Assim, podemos cria ruma struct para cada aluno e,
automaticamente, esse aluno terá as variáveis acima citadas.
Outro exemplo seria para tratar carros de uma montadora.
Podemos representar a estrutura de um carro colocando
alguns tipos de variáveis, que vão representar as características dos carros.
Por exemplo, qual a potência do motor, ano de fabricação,
quantas portas possui, seu preço etc.
Assim, cada carro vai ter os elementos dessa struct
automaticamente.
No próximo artigo de nosso curso de C vamos aprender como
declarar uma struct, e você terá uma noção maior da utilidade da estrutura e
como usá-las.
12 comentários:
Muito útil! Se depender de alguns profissionais dos cursos presenciais, morremos de fome! kkkkk
Bruce Dickison hehheheh, muito bom.
Muito bom, ótimo para ser mais claro, sem dúvida o Cprogressivo.net é o melhor site que já vi sobre programação em C, Parabéns pessoal, continuem assim. Com o conteúdo que vocês disponibilizam aqui no site fica bem mais fácil aprender a programar.
ótimo site para iniciantes e intermediários, ta me ajudando muito no curso, com detalhes q os professores não deixam claro dentro de sala.
Na programação orientada a objetos, qual a diferença entre uma Struct e uma classe?
Mil vezes mais didático que a própria faculdade. Da pra se dizer que eu aprendo muito mais com o CPROGRESSIVO do que com meus professores "de verdade". De coração, me faltam palavras pra agradecer. PARABÉNS!
o cprogressivo ensina melhor que meus professores da faculdade! Parabéns, estão me ajudando bastante.
no caso dos funcionários eu teria que declarar 300 structs??
Pelo que entendi sim.
Olá,
parabéns pela excelente didática dos artigos.
Entretanto, tenho uma dúvida com relação à expressão "Onde usar structs":
foi exemplificado casos de cadastro de alunos de uma escola, por exemplo, e o texto fala em criar n estruturas suficientes para acolher o total de alunos e seus atributos. Pois bem, os conteúdos de structs podem ser salvos em memória não volátil, como HDs, e depois recuperados?
Ou estamos falando de manter um cadastro dentro do código fonte, e cada vez que surgir um novo aluno, deveremos atualizar este fonte e recompilar o projeto?
Obrigado.
Bruce Dickinson rsrsrsrssrsrsrs
Muito bom!!
O artigo foi muito bom, me ajudou a entender de forma mais "fácil". Parabéns!
Vlw
melhor Bruce Banner hehe
Postar um comentário