TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Referência a elementos

Artigo: Referência a elementos. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  12/6/2013  •  Artigo  •  309 Palavras (2 Páginas)  •  320 Visualizações

Página 1 de 2

Referência a elementos

Os elementos duma estrutura são referenciados com o operador .

Por exemplo

printf("%d %d", pp.x,pp.y);

Estruturas encaixadas

Os elementos das estruturas podem ser estruturas. Por exemplo, pode-se definir um rectângulo usando a estrutura ponto, considerando o ponto superior direito e o ponto inferior esquerdo:

struct rectanglo {

struct ponto pie;

struct ponto psd;

};

Se tivermos a variável

struct rectangulo caixa

podemos referir-nos à coordenada x do ponto pie de caixa por

caixa.pie.x

Typedef

Pode-se usar o typedef para atribuir nomes a estruturas.

typedeff struct ponto ponto_p;

ponto_p pontos[20]

ou, ainda a estrutura é definida simultaneamente

typedef struct ponto {

int x;

int y;

} ponto_p;

Operações em estruturas

As únicas operações em estruturas são as de acesso a elementos (o operador . ) e as de cópia ou atribuição. A atribuição de estruturas permite que o contéudo duma estrutura seja copiado para outra estrutura. Considere o seguinte programa

#include

main()

{

struct exemplo {

int a;

float b;

char c;

};

struct exemplo ex1, ex2;

ex1.a=2;

ex1.b=1.0/2.0;

ex1.c='g';

ex2=ex1;

printf("a =%3d, b=%4.3f, c=%c\n", ex2.a,ex2.b, ex2.c);

}

No exemplo anterior, a variável ex1 podia ter sido inicializada por

struct exemplo ex1={ 2, 0.5,'g'};

O endereço duma estrutura pode ser obtido com o operador & .

Estruturas como argumentos e resultados de funções

A atribuição de estruturas inclui a passagem de argumentos para funções e os valores retornados de funções.

A função seguinte retorna uma estrutura tipo ponto:

struct ponto cria_pt (int x,int y) {

struct ponto tmp;

tmp.x=x;

tmp.y=y;

return tmp;

}

A função seguinte tem como argumentos duas estruturas, uma tipo ponto outra tipo rectangulo, e retorna 1 ou 0 consoante o ponto está ou não no interior do rectânulo.

int dentro_rect (struct ponto p, struct rectangulo r) {

return p.x >= r.pie.x && p.x < r.psd.x && p.y>=r.pie.y && p.y < r.psd.y;

}

...

Baixar como  txt (2.1 Kb)  
Continuar por mais 1 página »