ESTRUTURAS DE DADOS HETEROG NEAS
Diferentemente das estruturas de dados homogêneas (vetores e matrizes) que só podem guardar dados de um único tipo (int, double, char etc), os registros permitem guardar dados de tipos variados.
Um típico exemplo seria o armazenamento de informações que caracterizam um aluno: • Nome (string)
• Matrícula (int)
• Identidade (int)
• Endereço (string)
Em uma análise superficial, poderíamos pensar que a solução para esta questão poderia ser obtida declarando-se quatro variáveis: char nome[30]; int matricula; int identidade; char endereco[100];
Mas agora, vamos imaginar que seria necessário manipular não apenas um único aluno e sim uma turma com 30 alunos. Como você faria?
a) Criar 30 variáveis para cada informação (nome1, nome2.....matricula1, matricula2...)
b) Criar um array de 30 elementos para cada informação (nome[30], matricula[30]...)
É fácil de perceber que a opção 'b' seria muito mais adequada. Mas mesmo assim, manipular todos estes vetores mantendo seus dados consistentes seria um tanto trabalhoso.
Mas utilizando um registro, podemos resolver este problema criando apenas um vetor de 30 elementos. Um registro permite-nos agrupar variáveis relacionadas. No nosso caso, queremos agrupar as variáveis nome, matricula, identidade e endereco pois elas estão relacionadas às informações sobre um aluno.
Então, criamos um registro chamado aluno e definimos nela as informações (campos) que ela irá armazenar.
Para definirmos um registro aluno, fazemos assim: struct aluno { char nome[30]; int matricula; int identidade; char endereco[100];
};
Aqui, usamos a palavra-chave struct para informar ao compilador que um registro está sendo definido. Em seguida, atribuímos o nome aluno para o nosso registro e então definimos as variáveis (campos) que formam esse registro (nome, matricula, identidade e endereco). Percebam que a definição de um registro deve terminar com um ";" (ponto e vírgula).
Após a definição do registro, podemos