13.07.2015 Views

A Linguagem C Introdução a Programação em Linguagem C ...

A Linguagem C Introdução a Programação em Linguagem C ...

A Linguagem C Introdução a Programação em Linguagem C ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Outra característica do C é permitir criar nomes de tipos. No seguinte ex<strong>em</strong>plo:typedef struct{float x, y, z;}Ponto3D;define-se Ponto3D como um tipo, o que facilita a futura utilização. Costuma-se utilizar letra inicial maiúscula:Ponto3D *p1;p1 = (ponto3D *) malloc( sizeof(Ponto3D) );p1->x = 20;Estruturas pod<strong>em</strong> conter outras estruturas b<strong>em</strong> como pode também definir vetores de estruturas:Ponto3D vet[100]; /*vetor com 100 posições do tipo ponto3D *//*definição da estrutura quadrado compostas por 4 ponto3De mais uma string para conter o nome do el<strong>em</strong>ento */typedef struct{char nome[100];Ponto3D pontos[4];}Quadrado;Quando se aloca um vetor de estruturas de forma dinâmica, pode-se utilizar o operador [] para fazer a indexação,seguido do operador “.”.struct ponto3D *p;struct ponto3D var;//variavel estática. Usar o operador “.”var.p = &a;var.x = 100;//uma única estrutura dinâmica. Usar o operador ->p = (struct ponto3D*) malloc(sizeof(struct ponto3D));p->p = &a;p->x = 10;//vetor de estruturas. Usar o operador [] seguido do operador “.”p = (struct ponto3D*) malloc(10*sizeof(struct ponto3D));p[0].p = &a;p[0].x = 10;printf(" %d", p->x);printf(" %d", p[0].x);A passag<strong>em</strong> de estruturas para funções é s<strong>em</strong>elhante aos outros tipos de dados. Neste ex<strong>em</strong>plo a variável quadro1 épassada por referência para a função imprime. A função imprime recebe somente o endereço da localização davariável quadro1./* a definição da estrutura quadrado e ponto3D deve ser feita fora d<strong>em</strong>ain( ) pois a função imprime também usa esta estrutura */void imprime(Quadrado *q){int cont;printf("Nome da variável: %s", q->nome );for( cont=0; cont

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!