A maior rede de estudos do Brasil

Passagem por referência

Galera não entendi direito a passagem por referência, alguém consegue explicar melhor?


5 resposta(s) - Contém resposta de Especialista

User badge image

RD Resoluções Verified user icon

Há mais de um mês

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

User badge image

Alberto

Há mais de um mês

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

User badge image

Andre

Há mais de um mês

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.

Essa pergunta já foi respondida por um dos nossos especialistas