Galera não entendi direito a passagem por referência, alguém consegue explicar melhor?
Quando se passa o valor de uma variável ou objeto por referência, não estamos copiando o valor, na realidade estamos passando o endereço de memória onde aquele valor ou objeto se encontra.
Dá uma olhada nessa apostila, no ítem 4.7 (página 51): http://passeidireto.com/arquivo/3309687/caelum-java-objetos-fj11
Para responder essa pergunta devemos colocar em prática nosso conhecimento sobre Algoritmo e Estrutura de Dados.
Passagem por referência é passada para a função uma referência da variável, sendo possível alterar o conteúdo da variável original usando-se esta referência. Na linguagem C / C++ a passagem por referência é implementada com o uso de ponteiros, a seguir é apresentado um exemplo para facilitar o entendimento do mesmo.
#include
void troca(int *a, int *b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}
int main(){
int a=2,b=3;
printf("Antes de chamar a função :\na=%d\nb=%d\n",a,b);
troca(&a,&b);
printf("Depois de chamar a função:\na=%d\nb=%d\n",a,b);
return 0;
}
Portanto, a passagem de parâmetros por referência é enviada para a função uma referência às variáveis utilizadas, e não uma simples cópia, pelo que as alterações realizadas dentro da função irão certamente alterar os valores contidos nessas variáveis, esta “passagem” é feita utilizando do recurso de ponteiros.
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar