Buscar

Aula 4 - Passagem de Parâmetros por valor e por referência

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação Estruturada II
Aula 4 – Passagem de parâmetros 
por valor e por referência.
Prof: Efrem Lousada
efrem.lousada@anhanguera.com
plainit.co/u/efrem
Sumário
Prof: Efrem Lousada 2
1. Passagem de Parâmetros
2. Passagem por Valor
3. Passagem por Referência
4. Exercícios
Passagem de Parâmetros
Prof: Efrem Lousada 3
O mecanismo de informar os valores a serem 
processados pela função chama-se passagem 
de parâmetros. 
A Linguagem C define duas categorias de 
passagem de parâmetros: 
- Passagem por valor 
- Passagem por referência
Passagem por valor
Prof: Efrem Lousada 4
#include <stdio.h>
void troca (int a, int b);
main () 
{ 
int num1, num2; 
printf ("Entre com o numero 1: "); 
scanf ("%d",&num1); 
printf (“\n\n Entre com o numero 2: "); 
scanf ("%d",&num2); 
troca(num1, num2); 
printf ("\n\n O numero 1 agora vale: %d",num1); 
printf ("\n\n O numero 2 agora vale: %d",num2);
// Não funcionou... :(
} 
void troca (int a, int b) 
{
int temp;
temp = a; 
a = b; 
b = temp;
}
Passagem por referência
Prof: Efrem Lousada 5
Conceitos
Mas, e se quisermos que a função realmente troque
os valores das variáveis num1 e num 2 passadas a
ela como parâmetros?
Neste caso, em vez de passar para a função os
valores destas variáveis, é preciso passar os seus
endereços. Como assim?
Passagem por referência
Prof: Efrem Lousada 6
O operador ‘&’ 
O operador ‘&’ (‘operador de endereço’) retorna o
endereço de memória da variável à qual é aplicado.
Um dos usos do operador ‘&’ é na passagem de
parâmetros para funções que esperam um endereço de
memória como parâmetro, ou parâmetros passados por
referência’ na terminologia de C.
A função scanf() é uma função na qual os parâmetros são
passados por referência.
Passagem por referência
Prof: Efrem Lousada 7
#include <stdio.h>
void troca (int *a, int *b);
main () 
{ 
int num1, num2; 
printf ("Entre com o numero 1: "); 
scanf ("%d",&num1); 
printf (“\n\n Entre com o numero 2: "); 
scanf ("%d",&num2); 
troca(&num1, &num2); 
printf ("\n\n O numero 1 agora vale: %d",num1); 
printf ("\n\n O numero 2 agora vale: %d",num2);
// Funcionou !!!!
} 
void troca (int *a, int *b) 
{
int temp;
temp = *a; 
*a = *b; 
*b = temp;
}
Exercícios Entrega dia 01/04 
Prof: Efrem Lousada 8
1) O que é impresso na tela pelo seguinte programa?
#include <stdio.h>
int w=1,x=2,y=3,z=4;
void foo(int y)
{
int z=6;
int w;
printf(“%d %d %d %d ”, w,x,y,z);
}
main()
{
int x=7;
foo(5);
foo(x);
printf(“%d %d %d %d.”, w,x,y,z);
}
Exercícios
Prof: Efrem Lousada 9
2) Faça uma função que incremente o valor de um número passado por
parâmetro em 100. Utilize a passagem de parâmetro por referência para
fazer o incremento.
3) Utilizando passagem por referência, fazer um programa que leia o
preço de uma mercadoria e o percentual de reajuste e chame função que
receba estes valores como parâmetro e retorne o novo preço da
mercadoria com reajuste. Na função main( ) deve ser mostrado o preço
da mercadoria depois do aumento, bem como o percentual aplicado.
Exercícios
Prof: Efrem Lousada 10
4) Escreva um programa que receba um número inteiro representando a
quantidade total de segundos e, usando passagem de parâmetros por
referência, converta a quantidade informada de segundos em Horas,
Minutos e Segundos. Imprima o resultado da conversão no formato
HH:MM:SS. Utilize a seguinte função protótipo:
void converteHora (int total_segundos, int *hora, int *min, int *seg);
Fim,
Obrigado!
Prof: Efrem Lousada 11

Outros materiais