Paso de parámetros por Valor Por Valor: Los parámetros formales correspondientes reciben una copia de los valores (literales, constantes, variables, COPIA resultado de la evaluación de una expresión) de los parámetros actuales; por tanto, los cambios que se produzcan en ellos por efecto de la ejecución de la función no podrán afectar el valor de los parámetros actuales en caso de que estos fueran variables.
Paso de parámetros por Referencia Por Referencia: Lo que se pasa a la función es la dirección de memoria del parámetro actual, en consecuencia debe ser una variable. Así, una variable pasada como parámetro actual es compartida; es decir, puede ser accedida y modificada durante la ejecución de la función.
Parámetros por valor vs. Parámetros por referencia El paso de parámetros por referencia permite devolver varios valores desde un procedimiento a través de los parámetros actuales. Si una función devuelve un solo valor usando la sentencia return, es mejor que todos sus parámetros sean por valor. Las variables (parámetro actual) pasadas por valor a una función no pueden ser cambiadas. Las variables pasadas por referencia pueden ser cambiadas dentro de la función.