ELC1065 - Laboratório de Programação I
Primeiro Semestre de 2013
Professora: Juliana Kaizer Vizzotto
Estruturas em C
- Estruturas são coleções de variáveis relacionadas e agrupadas sob um único nome.
- Podem conter variáveis de muitos tipos de dados diferentes - diferentemente dos arrays, que contém apenas elementos do mesmo tipo.
- Estruturas são tipos de dados derivados, são construídas a partir de objetos de outros tipos.
struct card{ int face; int naipe; };
- Declarando uma variável do tipo estrutura e setando seus campos:
int main(){ ... struct card c; c.face=1; c.naipe=0; }
- Ainda podemos dar um nome ao novo tipo:
struct card{ int face; int naipe; }; typedef struct card Card; int main(){ ... Card c; }
- Ainda, os campos das estruturas podem ser ponteiros:
struct card{ char *face; char *naipe; };
- Dois operadores são utilizados para acessar os membros das estruturas: o operador de membro da estrutura (.) - também chamado de
operador de ponto - e o operador de ponteiro de estrutura (->) - também chamado de operador de seta.
Como vimos, o operador de membro/campo da estrutura acessa um membro da estrutura através do nome da variável da estrutura, mais o
operador e mais o nome do membro/campo. Por exemplo:
... struct card { char *face; char *naipe; }; typedef struct card Card; int main(){ Card aCard; Card *cardPtr; aCard.face = "As"; aCard.naipe = "Espadas"; cardPtr=&aCard; printf("%s%s%s\n%s%s%s\n%s%s%s\n",aCard.face, " de ", aCard.naipe, cardPtr->face, " de ", cardPtr->naipe, (*cardPtr).face," de ",(*cardPtr).naipe); return 0; }