TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Passagem De Parâmetros Por Referência

Pesquisas Acadêmicas: Passagem De Parâmetros Por Referência. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  10/4/2014  •  576 Palavras (3 Páginas)  •  408 Visualizações

Página 1 de 3

Passagem de parâmetro 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 a passagem por referência é implementada com o uso de ponteiros. Usando ponteiros (também chamados de apontadores) é possível alterar os valores das variáveis passadas como argumentos para uma função. A função utilizada dessa forma é denominada função com passagem por referência. Nesse tipo de função, os argumentos passam os endereços de memória para os parâmetros declarados na função. Sendo assim, os parâmetros que recebem os valores passados obrigatoriamente tem que ser ponteiros já que irão receber um endereço de memória.

As alterações feitas dentro da função tem efeito direto nas variáveis passadas como argumentos na chamada. Isto proporciona a oportunidade de retornar vários valores em uma única função já que as alterações ocorrem diretamente nas variáveis. Para passarmos uma variável para uma função e fazer com que ela seja alterada, precisamos passar a referência dessa variável, em vez de seu valor.

Quando passamos um valor, a função copia esse valor e trabalhar somente em cima da cópia dessa variável, e não na variável em si. Por isso nossas variáveis nunca eram alteradas quando passadas para funções. Porém, é muito importante e útil que algumas funções alterem valores de variáveis.

Por referência entenda endereço, um local. No caso, em vez de passar o valor da variável, na passagem por referência vamos passar o endereço da variável para a função.

Para fazer isso, basta colocar o operador & antes do argumento que vamos enviar, e colocar um asterisco * no parâmetro da função, no seu cabeçalho de declaração, para dizer a função que ela deve esperar um endereço de memória, e não um valor.

Nesta passagem de parâmetro é transmitido um caminho de acesso para o parâmetro real para o subprograma. Nenhum custo adicional para cópia de valores é exigido. Por outro lado, o acesso dos parâmetros formais no subprograma será mais lento. O acesso dos parâmetros reais podem gerar efeitos colaterais indesejáveis.

Uma função ou expressão é dita ter um efeito colateral se além de produzir um valor, ela também modifica o estado do programa. Na presença de efeitos colaterais, o comportamento do programa depende da história, isto é, da ordem em que as expressões são avaliadas.

Exemplo:

Intf(int&a){

A= 2*a;

Return a;

}

a=5

b= f(a) + a;

Observe que o valor de b depende da ordem que a expressão é avaliada. Se a avaliação for avaliada da esquerda para a direita, o valor da expressão 20. Se a expressão for avaliada da direita para a esquerda, o valor da expressão será 15.

Uma variável de um tipo de referência não contém seus dados diretamente. Ele contém uma referência a seus dados. Quando você passa um parâmetro de tipo de referência por valor, é possível alterar os dados apontados por referência, como, por exemplo, o valor de um membro da classe. No entanto,

...

Baixar como (para membros premium)  txt (3.7 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com