Passagem de parâmetros

Na maioria das vezes precisamos passar argumentos(informações) do programa principal para uma função(para saber mais sobre funções clique aqui), para tanto utilizamos parâmetros, que nada mais são do que os valores de entrada de uma função. Os parâmetros são definidos no cabeçalho da função e podemos passar quantos parâmetros forem necessários. Existem duas maneiras de se passar os argumentos por valor e/ou por referência.

Qual a diferença entre um argumento passado por valor e por referência?
Quando passamos um parâmetro por valor a função recebe uma cópia do argumento que está sendo enviado, enquanto que quando passamos o valor por referência, passamos na verdade a referência do argumento, ou seja seu endereço na memória. Na prática, quando passamos o argumento por valor, mesmo que haja uma alteração do argumento dentro da função, essa alteração não reflete na variável externa, enquanto que na referência quando existe uma alteração dentro do argumento da função ela refletirá diretamente na variável externa, alterando seu valor.

Pascal (Object Pascal, Delphi)
Passagem por valor:
function NomeDaFuncao(Parâmetro1: Tipo; ParâmetroN: Tipo): Tipo de retorno;
var
{declaração de variáveis locais, quando necessárias}
Begin

   {bloco de instruções}

end;

Passagem por referência:
Em pascal para passarmos um parâmetro por referência devemos precedê-lo da palavra reservada var.
function NomeDaFuncao(var Parâmetro1: Tipo; var ParâmetroN: Tipo): Tipo de retorno;
var
{declaração de variáveis locais, quando necessárias}
Begin

   {bloco de instruções}

end; 

Outras Linguagens

PHP
[+/-] Mostrar/Ocultar
Em PHP para passarmos um parâmetro por referência devemos precede-lo do símbolo &.
Passagem por valor:
function NomedaFuncao($parametro1,$parametroN){
    
   /* bloco de instruções */

}

Passagem por referência:
function NomedaFuncao(&$parametro1,&$parametroN){
    
   /* bloco de instruções */

}
Java
[+/-] Mostrar/Ocultar
Em java só existe passagem de parâmetros por valor, para saber mais clique aqui.
Passagem por valor:
void NomedaFuncao (Tipo parametro1, Tipo parametroN){
        
   //bloco de instruções

}
C#
[+/-] Mostrar/Ocultar
Em C# pode-se fazer a passagem de parâmetros de 3 maneiras: Por valor, por referência e por saída. A passagem por valor funciona da mesma maneira, já por saída é muito semelhante a passagem por referência, a diferença é que por referência é necessário realizar a inicialização da variável no local da chamada da função, enquanto que na passagem por saída não é necessário inicializar a variável, para saber mais clique aqui.


Passagem por valor:
void NomedaFuncao (Tipo parametro1, Tipo parametroN){
        
   //bloco de instruções

}

Passagem por referência:
Na passagem por referência deve-se colocar a palavra-chave ref.
void NomedaFuncao (ref Tipo parametro1, ref Tipo parametroN){
        
   //bloco de instruções

}

Passagem por saída:
Na passagem por saída deve-se colocar a palavra-chave out.
void NomedaFuncao (out Tipo parametro1, out Tipo parametroN){
        
   //bloco de instruções

}

3 comentários:

Cliodao disse...

Em nome de todos que leram e aprenderam, muito obrigado.

Vinícius disse...

aquela estudada na madruga da prova e cai exatamente essa questao que tava lendo pra passar o tempo kkkk vlw 20 pontos <3

Marco de Oliveira disse...

Explicação breve, simples, porém eficiente. Obrigado!