Escolar Documentos
Profissional Documentos
Cultura Documentos
Parte 3
Passagem de parâmetros
por referência
●
Conceito de passagem de parâmetros por
referência
●
Diferença da passagem de parâmetro por
valor
/* Programa ‘trocaValores’ */
#include <iostream>
#include <cmath>
using namespace std;
4/15
Trocando valores … (passagem por referência)
Fazer uma função chamada troca() que receba dois parâmetros inteiros X e Y e retorne as
variáveis com os conteúdos trocados. Isto é, se X=8 e Y=5, após a função, X=5 e Y=8.
/* Programa ‘trocaValores’ */
#include <iostream> A definição da função deve indicar que os
#include <cmath> parâmetros se referem às variáveis usadas
using namespace std; nos argumentos usados chamada da função
void troca ( int & a, int & b ) {
int tmp;
/* Programa ‘trocaValores’ */
#include <iostream>
#include <cmath> y 5
8
?
using namespace std; main( ) x ?
8
5
void troca ( int & a, int & b ) {
int tmp; x = 8;
y = 5; troca ( 8
5 &a 5 &b )
tmp = a;
a = b;
b = tmp;
troca ( x, y );
} tmp = a;
?
8
tmp a = b;
b = tmp;
int main ( ) {
int x, y ; cout << x << “ “ << y
x = 8; y = 5; << endl;
troca (x, y);
cout << x << “ “ << y << endl;
return 0;
} return 0;
7/15
Passagem de parâmetros por referência
●
Ao chamar a função, esta recebe no parâmetro uma
referência (link) direta ao argumento correspondente usado na
chamada da função:
/* Função ‘eq2grau’ */
#include <iostream>
#include <cmath>
using namespace std;
int main ( ) {
float a, b, c, x, y;
cin >> a >> b >> c; x e y receberão diretamente os valores
eq2grau ( a, b, c, x, y ) ; das raízes da equação com coeficientes
cout << x << “ “ << y << endl; a, b, e c.
}