Estruturas em C: mudanças entre as edições

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Cantu (discussão | contribs)
Cantu (discussão | contribs)
Linha 8: Linha 8:
   char last[20] ;
   char last[20] ;
  } name;
  } name;
Esta declaração cria uma variável ''name'' como uma estrutura com três campos, na qual o primeiro (''first'') e o terceiro (''last'') são strings e o segundo (''midinit'') é um caracter.
Esta '''declaração''' cria uma variável ''name'' como uma '''estrutura''' com três '''campos''', na qual o primeiro (''first'') e o terceiro (''last'') são strings e o segundo (''midinit'') é um caracter.


É possível atribuir um nome para a estrutura e depois declarar varíaveis deste tipo usando o nome:
É possível atribuir um '''nome para a estrutura''' e depois declarar variáveis deste tipo usando o nome:
  struct nametype{
  struct nametype{
   char first[10] ;
   char first[10] ;
Linha 19: Linha 19:
  struct nametyte name;
  struct nametyte name;


Uma alternativa ao uso de um nome de estrutura é utilizar a definição '''typedef''' de C. Por exemplo:
Uma alternativa ao uso de um nome de estrutura é utilizar a '''definição de tipo''' '''typedef''' de C. Por exemplo:
  typedef struct {
  typedef struct {
   char first[10] ;
   char first[10] ;
Linha 25: Linha 25:
   char last[20] ;
   char last[20] ;
  } NAMETYPE;
  } NAMETYPE;
Depois pode-se utilizar o novo tipo criado para declarar varáveis do tipo da estrutura criada:
Depois pode-se utilizar o novo tipo criado para declarar varáveis do '''tipo da estrutura''' criada:
  NAMETYTE name;
  NAMETYTE name;
:Observe que os nomes de estruturas são convencionalmente escritos com letras minúsculas, mas os especificadores de '''typedef''' são escritos com letras maiúsculas ao apresentar programas em C
:Observe que os nomes de estruturas são convencionalmente escritos com letras minúsculas, mas os especificadores de '''typedef''' são escritos com letras maiúsculas ao apresentar programas em C

Edição das 11h10min de 8 de junho de 2014

1 Estruturas em C

Uma estrutura em C é um uma estrutura de dados em forma de um registro com vários campos.

Declaração de uma estrutura
Por exemplo[1]:
struct {
  char first[10] ;
  char midinit ;
  char last[20] ;
} name;

Esta declaração cria uma variável name como uma estrutura com três campos, na qual o primeiro (first) e o terceiro (last) são strings e o segundo (midinit) é um caracter.

É possível atribuir um nome para a estrutura e depois declarar variáveis deste tipo usando o nome:

struct nametype{
  char first[10] ;
  char midinit ;
  char last[20] ;
};
struct nametyte name;

Uma alternativa ao uso de um nome de estrutura é utilizar a definição de tipo typedef de C. Por exemplo:

typedef struct {
  char first[10] ;
  char midinit ;
  char last[20] ;
} NAMETYPE;

Depois pode-se utilizar o novo tipo criado para declarar varáveis do tipo da estrutura criada:

NAMETYTE name;
Observe que os nomes de estruturas são convencionalmente escritos com letras minúsculas, mas os especificadores de typedef são escritos com letras maiúsculas ao apresentar programas em C
Acesso aos campos da estrutura
Cada campo da estrutura pode ser acessado especificando o nome da variável e no nome do campo correspondente.

Por exemplo:

printf("%s", name.first);
pode ser usada para imprimir o primeiro nome na estrutura name, e a instrução:
name.midinit = 'M';
atribui valor ao segundo campo da estrutura name.



Referências

  1. TENENBAUM, A. A.; LANGSAM, Y.; AUGENSTEIN, M.J. Estruturas de dados usando C, São Paulo: Makron Books, 1995.

Autoria
Evandro Cantú - IFPR, Câmpus Foz do Iguaçu