Para explicar un poco mejor el paso por referencia:
Cuando usamos una función normalmente y pasamos argumentos, lo que se hace es COPIAR el valor de esa variable al argumento que nosotros hayamos definido en la función.
Cuando hacemos uso del paso por referencia, lo que hacemos en ENVIAR la variable como tal, es decir, aquí ya no se hace una copia de esa variable sino que se envía directamente, lo que nos permite modificar su valor libremente desde dentro de la función.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?