1
PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS
Prof. Yandre Maldonado e Gomes da Costa
Prof.YandreMaldonado-1
PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS
• A passagem de parâmetros em uma função
pode se dar de diferentes formas. As duas
principais são:
– Por valor
– Por referência
Prof.YandreMaldonado-2
– Por valor:
• neste mecanismo, o parâmetro formal faz uma cópia
do valor do parâmetro real, fazendo com que todas
as ações da função manipulem somente o valor
copiado, evitando a alteração do valor original;
• Normalmente utilizada nos casos em que se
pretende apenas fornecer um valor (argumento de
entrada) para a função sem a necessidade de
preservar as alterações que ocorram sobre o mesmo;
Prof.YandreMaldonado-3
PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS
2
• Exemplo:
– Uma função que incrementa o valor de um
objeto inteiro passado como parâmetro por
valor.
void incrementa (int x)
{
x=x+1;
}
void incrementa (int x)
{
x=x+1;
}
PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS
Prof.YandreMaldonado-4
– Por referência:
• Neste mecanismo, a relação existente entre os
parâmetros formal e real está no endereço dos
parâmetros e não em seus valores;
• O que realmente é passado é o endereço do
parâmetro real para o formal. Assim, quem sofre a
ação é o próprio parâmetro real;
• Esta ação é de caráter permanente;
• Normalmente utilizada quando se pretende preservar
as alterações ocorridas sobre o objeto passado como
parâmetro real.
* Principalmente nos casos em que se deseja preservar
alterações ocorridas em mais de um valor.
PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS
Prof.YandreMaldonado-5
• Exemplo:
– Uma função que incrementa o valor de um
objeto inteiro passado como parâmetro por
referência.
void incrementa (int *x)
{
*x=*x+1;
}
void incrementa (int *x)
{
*x=*x+1;
}
PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS
Prof.YandreMaldonado-6
3
• Em C, pode-se distinguir a passagem por
valor ou referência da seguinte forma:
• Na declaração:
void F1 (int x);
void F2 (int *x);
• No uso:
int a;
...
F1 (a);
F2(&a);
Por valorPor valor
Por referênciaPor referência
PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS
Prof.YandreMaldonado-7
• Exercício:
1. Construa uma função em C que receba como
argumentos dois valores inteiros e calcule e
exiba os valores obtidos pela multiplicação
entre ambos e pela adição entre ambos.
Construa três soluções diferentes:
• Com passagem de parâmetros por valor;
• Com passagem de parâmetros por referência;
• Sem passagem de parâmetros;
2. Construa uma função em C que receba como
parâmetros dois objetos inteiros e faça uma
troca entre os valores de ambos.
PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS
Prof.YandreMaldonado-8

Parametros mini

  • 1.
    1 PASSAGEM DE PARÂMETROSPASSAGEMDE PARÂMETROS Prof. Yandre Maldonado e Gomes da Costa Prof.YandreMaldonado-1 PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS • A passagem de parâmetros em uma função pode se dar de diferentes formas. As duas principais são: – Por valor – Por referência Prof.YandreMaldonado-2 – Por valor: • neste mecanismo, o parâmetro formal faz uma cópia do valor do parâmetro real, fazendo com que todas as ações da função manipulem somente o valor copiado, evitando a alteração do valor original; • Normalmente utilizada nos casos em que se pretende apenas fornecer um valor (argumento de entrada) para a função sem a necessidade de preservar as alterações que ocorram sobre o mesmo; Prof.YandreMaldonado-3 PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS
  • 2.
    2 • Exemplo: – Umafunção que incrementa o valor de um objeto inteiro passado como parâmetro por valor. void incrementa (int x) { x=x+1; } void incrementa (int x) { x=x+1; } PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS Prof.YandreMaldonado-4 – Por referência: • Neste mecanismo, a relação existente entre os parâmetros formal e real está no endereço dos parâmetros e não em seus valores; • O que realmente é passado é o endereço do parâmetro real para o formal. Assim, quem sofre a ação é o próprio parâmetro real; • Esta ação é de caráter permanente; • Normalmente utilizada quando se pretende preservar as alterações ocorridas sobre o objeto passado como parâmetro real. * Principalmente nos casos em que se deseja preservar alterações ocorridas em mais de um valor. PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS Prof.YandreMaldonado-5 • Exemplo: – Uma função que incrementa o valor de um objeto inteiro passado como parâmetro por referência. void incrementa (int *x) { *x=*x+1; } void incrementa (int *x) { *x=*x+1; } PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS Prof.YandreMaldonado-6
  • 3.
    3 • Em C,pode-se distinguir a passagem por valor ou referência da seguinte forma: • Na declaração: void F1 (int x); void F2 (int *x); • No uso: int a; ... F1 (a); F2(&a); Por valorPor valor Por referênciaPor referência PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS Prof.YandreMaldonado-7 • Exercício: 1. Construa uma função em C que receba como argumentos dois valores inteiros e calcule e exiba os valores obtidos pela multiplicação entre ambos e pela adição entre ambos. Construa três soluções diferentes: • Com passagem de parâmetros por valor; • Com passagem de parâmetros por referência; • Sem passagem de parâmetros; 2. Construa uma função em C que receba como parâmetros dois objetos inteiros e faça uma troca entre os valores de ambos. PASSAGEM DE PARÂMETROSPASSAGEM DE PARÂMETROS Prof.YandreMaldonado-8