Mudanças entre as edições de "Estruturas em C"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(7 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
 
=Estruturas em C=
 
=Estruturas em C=
Uma '''estrutura''' em C é um uma '''estrutura de dados''' composta, formando um '''registro''', com vários '''campos'''.
+
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<ref name="TENENBAUM">TENENBAUM, A. A.; LANGSAM, Y.; AUGENSTEIN, M.J. Estruturas de dados usando C, São Paulo: Makron Books, 1995.</ref>:
+
;Criação de uma estrutura: Para a criação de uma estrutura utiliza-se o comando '''struct''' e atribui-se um '''nome para a estrutura''', o qual é depois utilizado para declarar variáveis deste tipo.
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 varíaveis deste tipo usando o nome:
+
Exemplo<ref name="TENENBAUM">TENENBAUM, A. A.; LANGSAM, Y.; AUGENSTEIN, M.J. Estruturas de dados usando C, São Paulo: Makron Books, 1995.</ref>:
 
  struct nametype{
 
  struct nametype{
 
   char first[10] ;
 
   char first[10] ;
Linha 19: Linha 13:
 
  struct nametyte name;
 
  struct nametyte name;
  
Uma alternativa ao uso de um nome de estrutura é utilizar a definição '''typedef''' de C. Por exemplo:
+
:A primeira declaração cria uma '''estrutura''' de nome ''nametype'' com três '''campos''', na qual o primeiro (''first'') e o terceiro (''last'') são strings e o segundo (''midinit'') é um caracter.
 +
 
 +
:A segunda declaração cria a variável ''name'' do tipo da estrutura ''nametype''.
 +
 
 +
Uma alternativa ao uso de um nome de estrutura é utilizar a '''definição de tipo''' com o comando '''typedef''' do C. Por exemplo:
 
  typedef struct {
 
  typedef struct {
 
   char first[10] ;
 
   char first[10] ;
Linha 25: Linha 23:
 
   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.
 +
 
 +
;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.
 +
 
 +
;Programa exemplo:
 +
#include <stdio.h>
 +
#include <string.h>
 +
struct nametype{
 +
  char first [10]; /*Tipo string*/
 +
  char midinit;    /*Tipo char*/
 +
  char last [10];  /*Tipo string*/
 +
};
 +
void main ()
 +
{
 +
  struct nametype name;
 +
  strcpy (name.first,"João");
 +
  name.midinit = 'C';
 +
  strcpy (name.last,"Silva");
 +
  printf("Nome completo: %s %c. %s\n", name.first, name.midinit, name.last);
 +
}
  
  

Edição atual tal como às 09h40min de 9 de junho de 2014

Estruturas em C

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

Criação de uma estrutura
Para a criação de uma estrutura utiliza-se o comando struct e atribui-se um nome para a estrutura, o qual é depois utilizado para declarar variáveis deste tipo.

Exemplo[1]:

struct nametype{
  char first[10] ;
  char midinit ;
  char last[20] ;
};
struct nametyte name;
A primeira declaração cria uma estrutura de nome nametype com três campos, na qual o primeiro (first) e o terceiro (last) são strings e o segundo (midinit) é um caracter.
A segunda declaração cria a variável name do tipo da estrutura nametype.

Uma alternativa ao uso de um nome de estrutura é utilizar a definição de tipo com o comando typedef do 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.
Programa exemplo
#include <stdio.h>
#include <string.h>
struct nametype{
  char first [10]; /*Tipo string*/
  char midinit;    /*Tipo char*/
  char last [10];  /*Tipo string*/
};
void main ()
{
  struct nametype name;
  strcpy (name.first,"João");
  name.midinit = 'C';
  strcpy (name.last,"Silva");
  printf("Nome completo: %s %c. %s\n", name.first, name.midinit, name.last);
}



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