01/2013
Passagem de Parmetros
e
Estruturas
2
A passagem de parmetros
3
Passagem por valor
x++ 2 Apenas os
a 1 x 1 contedos
de x, y e z
b 2 y 2 y++ 3 so alterados.
c 3 z 3 z++ 4
5
Passagem por referncia
6
Passagem por referncia
Ou seja:
Endereo Contedo Varivel
F000 1 a
F010 2 b
F020 3 c
7
Passagem por referncia
int *x;
a = FFF1 (endereo de x)
*a = 1 (pois *a = x = 1)
Logo:
&(*a) = &x = FFF1 = a
Portanto:
&(*a) a
11
Problema 1
somar
dividir
subtrair
multiplicar
simplificar
12
Anlise do programa
13
Anlise do programa
14
Anlise do programa
15
Definio de novos tipos de dados
16
Definio de novos tipos de dados
struct nome_da_estrutura
{
tipo_1 variavel_1; As variveis que compem
a estrutura so chamadas
... de campos da estrutura.
tipo_n variavel_n;
};
17
Definio de novos tipos de dados
Exemplos:
struct circulo
{ A declarao de variveis de um
float raio; tipo estruturado (estruturas) feita
struct ponto centro; da mesma forma que para um tipo
}; simples.
18
Definio de novos tipos de dados
Exemplo:
Dando o nome inteiro para o tipo int:
inteiro num;
20
O comando typedef
O comando typedef tambm pode ser utilizado para dar
nome a tipos complexos como estruturas.
Exemplos:
21
O comando typedef
Observao:
Utilizando-se o comando struct juntamente com o
comando typedef, pode-se dispensar o uso da palavra
struct na declarao da varivel.
void main() {
ponto u, v;
scanf("%f %f %f %f", &u.x, &u.y, &v.x, &v.y);
printf("\n %f", distancia_pontos(u,v));
}
23
Estruturas como parmetros de funes
void main() {
ponto u, v;
le_coordenada(&u);
le_coordenada(&v);
printf("\n %f", distancia_pontos(u,v));
getch();
}
24
Estruturas como parmetros de funes
void main() {
ponto u, v;
le_coordenada(&u);
le_coordenada(&v);
printf("\n %f", distancia_pontos(u,v));
getch();
}