COS-121
Estrutura de Dados e Algoritmos
2 Semestre de 2014
Professor Ricardo Farias
Aula 04
struct Produto {
int codigo;
float preco;
};
struct Dt_dma {
int dia, mes, ano;
};
struct Produto prod; // prod é a variável do tipo struct Produto
struct Dt_dma dt_nasc; // dt_nasc é uma variável do tipo struct Dt_dma
prod.codigo = 104; // atribuido o valor 104 ao campo codigo da variável prod
dt_nasc.ano = 2009; // atribuido o valor 2009 ao campo ano da variável dt_nasc
struct Dt_dma *p; // p é um ponteiro para registros do tipo Dt_dma
struct Dt_dma dt_nasc; // dt_nasc é uma variável do tipo Dt_dma
p = &dt_nasc; // p aponta para dt_nasc
p-> ano = 2009; // atribui o valor 2009 ao campo ano da variável dt_nasc
(*p).ano = 2009; // atribui o valor 2009 ao campo ano da variável dt_nasc
p->ano = 2009;
equivale a:
(*p).ano = 2009
Para dar um nome ao novo tipo de dado criado utiliza-se typedef:
typedef struct Dt_dma data;
data dt_nasc;
data *p;
p = &dt_nasc;
Exemplo de codigo:
#include
struct Produto{
int cod;
float preco;
};
void leProd(struct Produto *q){
int i;
for (i=0; i<3; i++){
printf("Codigo? ");
scanf("%d", &q->cod);
printf("Preco? ");
scanf("%f", &q->preco);
q++;
}
}
void mostraProd(struct Produto *q){
int i;
printf("Novo preco\n");
for (i=0; i<3; i++){
printf("Codigo: %d - Preco: %.2f\n",q->cod, q->preco);
q++;
}
}
void aumenta (struct Produto *p) {
int i;
// Aumentando o preco
for (i=0; i<3; i++){
p->preco *= 1.15;
p++;
}
}
void main(){
struct Produto prod[3];
leProd( & prod [0] );
aumenta( & prod[0] );
mostraProd( & prod[0] );
}