TA 345 Informática Aplicada à Engenharia de Alimentos

Aula 6 Subtema 02: Estruturas


Estruturas

Existem dois passos no processo de definição de uma variável estrutura:

1. primeiro você declara um tipo de estrutura, que determina o formato - ou padrão - que a estrutura utilizará para armazenar os dados.
2.depois você define uma ou mais variáveis que pertencem ao tipo da estrutura declarada.

Ambas as declarações começam com a palavra reservada struct.

Sintaxe:

   struct nomedetipo
        {
        tipo membro1;
        tipo membro2;
        /* declarações adicionais de membros */
         };

Essa declaração não aloca espaço na memória para quaisquer variáveis, mais propriamente, ela simplesmente define o formato de dados de uma estrutura. O nome da estrutura nessa declaração é um tipo de dado que você pode utilizar mais tarde para definir variáveis. A lista de definição de membros está incluída entre chaves nessa definição. Cada membro da lista tem seu próprio nome (membro1, membro2 e assim por diante) e seu próprio tipo de dados definido.

Exemplo:

       struct clistruct
        {
        char client[40];
        float hours;
        };

Você também poderá definir uma ou mais variáveis pertencentes a um tipo de estrutura.

Sintaxe:


       struct nomedetipo variável;

Exemplo:

       struct clistruct holdcli;

Uma vez definida a variável de estrutura, C fornece uma notação especial para referir-se aos membros individuais da estrutura. A notação tem duas partes, separadas por um ponto:

Sintaxe:

       variável.membro

O nome da variável estrutura vem primeiro, seguido pelo nome de um membro individual.

Exemplo:

       holdcli.client
       holdcli.hours


Classificando estrutura

C permite que uma estrutura inteira seja copiada para outra variável estrutura por meio de um simples comando de atribuição.

Exemplo:
Se s1 e s2 são ambas estruturas de um mesmo tipo, o seguinte comando atribui todos os membros de s2 para todos os correspondentes membros em s1:

s1 = s2;

Digamos que as estruturas s1 e s2 contêm os membros x, y e z; o comando de atribuição mostrado acima possui o mesmo efeito que os três comandos seguintes:

 

      s1.x = s2.x;
      s1.y = s2.y;
      s1.z = s2.z;

/* ex44.c          classificação de estrutura */
#include < stdio.h >            /* diretiva */

main()            /* função principal */
   {
    struct s      /* declaração de estrutura */
       {
        int x,y,z;
       }
    struct s s1;            /* variáveis com a mesma estrutura  definida antes*/
    struct s s2 = {1,2,3};
   s1 = s2;
    printf ("\n %d  %d  %d \n\n",s1.x, s1.y, s1.z);
   }


Inicializando uma estrutura

A inicialização de estruturas é feita de forma semelhante à inicialização de matrizes. Para cada membro da estrutura devem ser relacionados entre chaves ({}) os valores iniciais, sendo atribuído o valor nulo aos membros para os quais não sejam relacionados valores iniciais:

/* Ex58.c  inicialização de uma estrutura */
#include < stdio.h > 

struct  dados
{
    long identidade;
    char nome[10];
 };
 struct  dados cliente = { 579992L, "Fernando"}, { 678888L, "Antonio"};

main()
{
   printf ("Cliente        = %s", cliente[0].nome)};
   printf ("Identidade    = %ld\n", cliente[0].identidade)};
   printf ("Cliente        = %s", cliente[1].nome)};
   printf ("Identidade    = %ld\n", cliente[1].identidade)};
}



Voltar à HomePage

Ir para o topo da Página

Ir para a Aula 7