Struct em C

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

tela de execução utilizando struct

Tela de execução utilizando struct

Até a próxima!

15 respostas a Struct em C