Paso de variables por valor y referencia

Kinder Sorpresa
13 de Noviembre del 2003
Hola, ¿alguien me puede explicar detalladamente en que consiste el paso de variables por valor y por referencia?¿y para que sirve cada una?¿y con que finalidad se emplea una u otra?

Muchas gracias.

Juan
13 de Noviembre del 2003
Cuando se pasa por valor, el parámetro de la función
que es llamada, actua como una variable distinta de la
que se pasó, pero que ha recibido el valor que esta contenia.

Cuando una variable se pasa por referencia, el parámetro
de la función que es llamada actua como una referencia
a dicha variable, es decir, todos los cambios en el
valor del parámetro que se hacen dentro de la función,
se están haciendo en la variable que fue pasada.

Habitualmente el paso por referencia se utiliza con
dos motivos:

1- Cuando se requiere que la función modifique la
información contenida en la variable. Por ejemplo una
función que ordena una matriz necesita poder modificar
dicha matriz para que esta quede ordenada.

2- Cuando la función necesita devolver más de un valor.
Normalmente una función devuelve un solo valor, pero
si le pasamos una referencia a una o más variables,
esta función podrá dejar dentro de esas variables
diversos resultados. Un ejemplo de esto son muchas
de las funciónes API cuyo valor de retorno es un código
de error pero el resultado de la función se almacena
en una variable que se pasó por referencia.

El paso por valor es el más habitual y simplemente es
una transferencia de datos, desde el procedimiento
que llama a la función que es llamada.