Por: Eduardo Casavella
Uma struct é uma variável especial que contém diversas outras variáveis normalmente de tipos diferentes.
As variáveis internas contidas pela struct são denominadas membros da struct.
Podemos dizer que as structs da linguagem C são o equivalente ao que se denomina registros em outras linguagens de programação.
Sintaxe:
struct <identificador>
{
<listagem dos tipos e membros>;
}
struct <identificador> <variavel>;
Exemplo de declaração de uma struct
struct ficha_de_aluno
{
char nome[50];
char disciplina[30];
float nota_prova1;
float nota_prova2;
};
struct ficha_de_aluno aluno;
Neste exemplo criamos a struct ficha_de_aluno.
Depois de criar a struct precisamos criar a variável que vai utiliza-la.
Para tanto criamos a variável aluno, que será do tipo ficha_de_aluno.
struct ficha_de_aluno aluno;
Agora vejamos um programa que utiliza uma struct.
#include <stdio.h>
#include <conio.h>
int main(void)
{
/*Criando a struct */
struct ficha_de_aluno
{
char nome[50];
char disciplina[30];
float nota_prova1;
float nota_prova2;
};
/*Criando a variável aluno que será do
tipo struct ficha_de_aluno */
struct ficha_de_aluno aluno;
printf("\n---------- Cadastro de aluno -----------\n\n\n");
printf("Nome do aluno ......: ");
fflush(stdin);
/*usaremos o comando fgets() para ler strings, no caso o nome
do aluno e a disciplina
fgets(variavel, tamanho da string, entrada)
como estamos lendo do teclado a entrada é stdin (entrada padrão),
porém em outro caso, a entrada tambem poderia ser um arquivo */
fgets(aluno.nome, 40, stdin);
printf("Disciplina ......: ");
fflush(stdin);
fgets(aluno.disciplina, 40, stdin);
printf("Informe a 1a. nota ..: ");
scanf("%f", &aluno.nota_prova1);
printf("Informe a 2a. nota ..: ");
scanf("%f", &aluno.nota_prova2);
printf("\n\n --------- Lendo os dados da struct ---------\n\n");
printf("Nome ...........: %s", aluno.nome);
printf("Disciplina .....: %s", aluno.disciplina);
printf("Nota da Prova 1 ...: %.2f\n" , aluno.nota_prova1);
printf("Nota da Prova 2 ...: %.2f\n" , aluno.nota_prova2);
getch();
return(0);
}
Tela de execução
Structs aninhadas
No vídeo a seguir veremos como utilizar uma struct dentro de outra struct, ou seja, como aninhar structs. Depois de fazer o aninhamento vamos também criar um vetor de struct.
Até a próxima!

16 respostas a Struct em C