Funcoes Pascal

3 respostas
J

Galera tudo em cima…
Então estou estudando pascal utilizando o delphi, e
tenho uma duvida nas funçoes com passagem com referencia…
tipo eu não entendo a diferença de uma passagem de parametro
por valor e por referencia…

Se voces puderem me explicar e colocar um exemplo…

Grato.

3 Respostas

Andre_Brito

Se passar por valor, quando (e se) você mudar o valor da variável dentro da função, o valor dela não muda fora daquela função (ou seja, depois de passar para a função e do término desta, vai continuar com o mesmo valor).

Se passar por referência, quando (e se) você mudar o valor da variável dentro da função, o valor dela muda também fora da função (como se passasse o local da memória onde fica a variável).

J
Andre Brito:

Se passar por referência, quando (e se) você mudar o valor da variável dentro da função, o valor dela muda também fora da função (como se passasse o local da memória onde fica a variável).

É isso mesmo. Um ponteiro para a varável. A keyword var especifica isso.
Você também ainda pode passar o ponteiro para um ponteiro com a keyword out.

ex:
procedure add(var total:Integer);
begin
   inc(total);
end;

ou para ponteiros

procedure ponteiroToPonteiro(x:Pointer; out:out);
begin
     out:=@x;
end;
ViniGodoy

Só para avisar, movi o seu tópico para a sessão de “outras linguagens”.

Criado 16 de setembro de 2009
Ultima resposta 16 de set. de 2009
Respostas 3
Participantes 4