PASSAGEM DE PAR METROS POR VALOR
É a maneira mais usual na passagem de parâmetros. Funciona como uma entrada de valores na função principal, ou seja, as variáveis são criadas na função main - principal outra função - e a Função criada (Externa) receberá uma "cópia" dessas variáveis quando for chamada, sendo que todas as alterações feitas dentro da função não alteram os valores originais das variáveis
.
Por Exemplo:
Se fosse solicitado a criação de um programa para calcular a tangente de determinado ângulo, a função poderia ser escrita da seguinte forma:
Float CalTangente (Float angulo) // angula seria o parâmetro local de outras duas funções: Seno e Cosseno;
{
Float sin , cossi sin = seno (angulo); cossi = cosseno (angulo); return s/c;
}
Se o ângulo informado nas outras duas funções, Seno e Cosseno, fosse 45° saberíamos que a função CalTangente retornaria o valor de 1. Entretanto, se a um das funções seno ou cosseno pudesse alterar o parâmetro ângulo de modo que os parâmetros fossem diferentes o valor de retorno da função CalTangente certamente seria incorreto. A passagem por valor impediria justamente que o parâmetro ângulo fosse alterado, sendo que este serviria apenas como uma entrada para o cálculo dos valores de seno e cosseno e em seguida com os resultados encontrados, o cálculo da tangente.
PASSAGEM DE PARÂMETROS POR REFERÊNCIA
Ao contrário da passagem por valor, na passagem de parâmetros por referência as alterações realizadas nos parâmetros dentro da função chamada, irão modificar os valores das variáveis na função principal, pois a função externa não recebe uma "cópia' da variável e sim um valor de referência dessa variável.
Comumente a passagem de parâmetros por referência é utilizada toda vez que se quer retornar mais de um valor na função.
Para indicar a passagem de parâmetro por referência utilizamos como referência o endereço da variável através do & (lê-se "i" comercial), visto que cada variável está alocada em um endereço de