SlideShare uma empresa Scribd logo
1 de 3
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados (20)

Recursividade
RecursividadeRecursividade
Recursividade
 
Conceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffersConceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffers
 
Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem c
 
Semana 14
Semana 14Semana 14
Semana 14
 
C++ Funções
 C++ Funções C++ Funções
C++ Funções
 
Linguagem C - Estruturas
Linguagem C - EstruturasLinguagem C - Estruturas
Linguagem C - Estruturas
 
Linguagem C - Strings
Linguagem C - StringsLinguagem C - Strings
Linguagem C - Strings
 
Aula 2
Aula 2Aula 2
Aula 2
 
Funções
FunçõesFunções
Funções
 
Linguagem C 07 Registros
Linguagem C 07 RegistrosLinguagem C 07 Registros
Linguagem C 07 Registros
 
Apresentação recursividade rev2
Apresentação recursividade rev2Apresentação recursividade rev2
Apresentação recursividade rev2
 
Funções em C
Funções em CFunções em C
Funções em C
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 
Algoritmo recursivo
Algoritmo recursivoAlgoritmo recursivo
Algoritmo recursivo
 
Ling c
Ling cLing c
Ling c
 
Linguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De DecisaoLinguagem C 03 Estruturas De Decisao
Linguagem C 03 Estruturas De Decisao
 
Lista Exercicios 05
Lista Exercicios 05Lista Exercicios 05
Lista Exercicios 05
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem C
 
Aula 04 Estruturas de repetição 02 - Para Faça
Aula 04  Estruturas de repetição 02 - Para FaçaAula 04  Estruturas de repetição 02 - Para Faça
Aula 04 Estruturas de repetição 02 - Para Faça
 

Destaque (20)

Calificaciones primer bimestre 2011 2012
Calificaciones primer bimestre 2011 2012Calificaciones primer bimestre 2011 2012
Calificaciones primer bimestre 2011 2012
 
Pantaleon elizabeth 2 a-5
Pantaleon elizabeth 2 a-5Pantaleon elizabeth 2 a-5
Pantaleon elizabeth 2 a-5
 
Plan de-vida-1199318012474337-4
Plan de-vida-1199318012474337-4Plan de-vida-1199318012474337-4
Plan de-vida-1199318012474337-4
 
Historia internet
Historia internetHistoria internet
Historia internet
 
Historia del internet
Historia del internetHistoria del internet
Historia del internet
 
Red lan
Red lanRed lan
Red lan
 
Practica#3
Practica#3Practica#3
Practica#3
 
Feedback on synopsis
Feedback on synopsisFeedback on synopsis
Feedback on synopsis
 
Cuidado com o excesso de estrume em sua vida
Cuidado com o excesso de estrume em sua vidaCuidado com o excesso de estrume em sua vida
Cuidado com o excesso de estrume em sua vida
 
Polo futuro de Náutica e Máquinas
Polo futuro de Náutica e MáquinasPolo futuro de Náutica e Máquinas
Polo futuro de Náutica e Máquinas
 
Modelo pso
Modelo psoModelo pso
Modelo pso
 
Emerging technologies favorites
Emerging technologies favoritesEmerging technologies favorites
Emerging technologies favorites
 
Plan
PlanPlan
Plan
 
Asteroïden
AsteroïdenAsteroïden
Asteroïden
 
25 de novembre
25 de novembre25 de novembre
25 de novembre
 
áLbum de fotografías
áLbum de fotografíasáLbum de fotografías
áLbum de fotografías
 
Blog
BlogBlog
Blog
 
Fujitsu
FujitsuFujitsu
Fujitsu
 
Lauramaffeitabuladores
LauramaffeitabuladoresLauramaffeitabuladores
Lauramaffeitabuladores
 
Seneam
SeneamSeneam
Seneam
 

Semelhante a Parametros mini

Semelhante a Parametros mini (9)

Aula 4 php
Aula 4 phpAula 4 php
Aula 4 php
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
PHP - Funções
PHP - FunçõesPHP - Funções
PHP - Funções
 
Aula 05 subprogramas
Aula 05   subprogramasAula 05   subprogramas
Aula 05 subprogramas
 
Curso Básico de Java - Aula 10
Curso Básico de Java - Aula 10Curso Básico de Java - Aula 10
Curso Básico de Java - Aula 10
 
Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopes
 
Aula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmosAula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmos
 
Aula 7 aed - sub algoritmos
Aula 7   aed - sub algoritmosAula 7   aed - sub algoritmos
Aula 7 aed - sub algoritmos
 
Aula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmosAula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmos
 

Mais de Valdinho Pereira

Mais de Valdinho Pereira (16)

The c programming language
The c programming languageThe c programming language
The c programming language
 
O fantc3a1stico-mundo-da-linguagem-c
O fantc3a1stico-mundo-da-linguagem-cO fantc3a1stico-mundo-da-linguagem-c
O fantc3a1stico-mundo-da-linguagem-c
 
Apostila c
Apostila cApostila c
Apostila c
 
Apostila c
Apostila cApostila c
Apostila c
 
Caelum ruby-on-rails-rr71
Caelum ruby-on-rails-rr71Caelum ruby-on-rails-rr71
Caelum ruby-on-rails-rr71
 
Caelum java-web-vraptor-hibernate-ajax-fj28
Caelum java-web-vraptor-hibernate-ajax-fj28Caelum java-web-vraptor-hibernate-ajax-fj28
Caelum java-web-vraptor-hibernate-ajax-fj28
 
Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22
 
Apostila tp
Apostila tpApostila tp
Apostila tp
 
Tutorial oracle forms builder
Tutorial oracle forms builderTutorial oracle forms builder
Tutorial oracle forms builder
 
Programação orientada a objectos
Programação orientada a objectosProgramação orientada a objectos
Programação orientada a objectos
 
Poojava
PoojavaPoojava
Poojava
 
Introducao oracle-sqlplsql-vol2-pt
Introducao oracle-sqlplsql-vol2-ptIntroducao oracle-sqlplsql-vol2-pt
Introducao oracle-sqlplsql-vol2-pt
 
Easygui
EasyguiEasygui
Easygui
 
Bibliotecas c
Bibliotecas cBibliotecas c
Bibliotecas c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 

Parametros mini

  • 1. 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. 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. 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