estruturasponteiros

333 palavras 2 páginas
Estruturas e Ponteiros
Cada registro tem um endereço na memória do computador.
(Você pode imaginar que o endereço de um registro é o endereço de seu primeiro campo, mas essa detalhe é irrelevante.) É muito comum usar um ponteiro para guardar o endereço de um registro. Dizemos que um tal ponteiro aponta para o registro. Por exemplo, struct dma { int dia; int mes; int ano; };

struct dma *p; /* p é um ponteiro para registros dma */ struct dma x; p = &x;

/* agora p aponta para x */

(*p).dia = 31; /* mesmo efeito que x.dia = 31 */

Estruturas e Ponteiros


A expressão p->mes é uma abreviatura muito útil para a expressão (*p).mes : p->mes = 8;

/* mesmo efeito que (*p).mes = 8 */

p->ano = 1998;


Registros podem ser tratados como um novo tipo-dedados. Por exemplo,

typedef struct dma data; data x; data *p; p = &x;

Exercícios
1.Defina um registro empregado para guardar os dados (nome, sobrenome, data de nascimento, RG, data de admissão, salário) de um empregado de sua empresa.
Defina um vetor de empregados para armazenar todos os empregados de sua empresa. 2.Um racional é qualquer número da forma p/q, sendo p inteiro e q inteiro não nulo. É conveniente representar um racional por um registro: typedef struct { int p, q;
} racional;
Vamos convencionar que o campo q de todo racional é estritamente positivo e que o máximo divisor comum dos campos p e q é 1. Escreva


uma função reduz que receba inteiros a e b e devolva o racional que representa a/b;



uma função neg que receba um racional x e devolva o racional −x;





uma função soma que receba racionais x e y e devolva o racional que representa a soma de x e y; uma função mult que receba racionais x e y e devolva o racional que representa o produto de x por y; uma função div que receba racionais x e y e devolva o racional que representa o quociente de x por y;

Relacionados