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.
1 #include <stdio.h>
2 #include <conio.h>
int main(void)
3
{
4
/*Criando a struct */
5
struct ficha_de_aluno
6
{
7
char nome[50];
8
char disciplina[30];
9
float nota_prova1;
1
float nota_prova2;
0
};
1
1
1
/*Criando a variável aluno que será do
2
tipo struct ficha_de_aluno */
1
3 struct ficha_de_aluno aluno;
1
4
printf("\n---------- Cadastro de aluno -----------\n\n\n");
1
5
1 printf("Nome do aluno ......: ");
6
fflush(stdin);
1
7
1 /*usaremos o comando fgets() para ler strings, no caso o nome
8
do aluno e a disciplina
1
9 fgets(variavel, tamanho da string, entrada)
como estamos lendo do teclado a entrada é stdin (entrada padrão),
2
0
porém em outro caso, a entrada tambem poderia ser um arquivo */
2
1
fgets([Link], 40, stdin);
2
2
2
printf("Disciplina ......: ");
3
fflush(stdin);
2
4
fgets([Link], 40, stdin);
2
5
printf("Informe a 1a. nota ..: ");
2
6 scanf("%f", &aluno.nota_prova1);
2
7
printf("Informe a 2a. nota ..: ");
2
8 scanf("%f", &aluno.nota_prova2);
2
9
printf("\n\n --------- Lendo os dados da struct ---------\n\n");
3
0 printf("Nome ...........: %s", [Link]);
printf("Disciplina .....: %s", [Link]);
3
1
printf("Nota da Prova 1 ...: %.2f\n" , aluno.nota_prova1);
3
printf("Nota da Prova 2 ...: %.2f\n" , aluno.nota_prova2);
2
3
3
getch();
3
4 return(0);
}
3
5
3
6
3
7
3
8
3
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
Tela de execução
Tela de execução utilizando struct