Terraceria

El paso de parámetros por referencia

1 Paso de parámetros por valor

El mecanismo que hemos estado utilizando hasta el momento para pasar parámetros del programa principal a los procedimientos o funciones se denomina paso por valor. El computador hace una copia del valor de los parámetros que el programa principal quiere pasar al procedimiento o función, y el procedimiento o funcióntrabaja con esta copia del valor de los parámetros. Veamos un ejemplo.

[pic]

En este ejemplo se ha definido un procedimiento que escribe en pantalla los datos de una estructura (nombre, edad y nota de un alumno). El programa principal declara una variable de tipo Talumno, se asigna un valor a cada uno de sus campos, y llama al procedimiento para que se escriban esos valores en la pantalla. Paraello, le pasa por valor la variable que contiene los datos del alumno.

Construye un proyecto para probar este programa, ejecútalo y comprueba que funciona correctamente. Después, vuelve a ejecutar paso a paso el programa siguiendo las instrucciones que ves a continuación.

|Establece un punto de parada en la sentencia strcpy (alum.nombre, “Juan”); y ||
|otro punto de parada en la sentencia printf (“Nombre: %s
“, a.nombre); | |
|Ejecuta el programa hasta el primer punto de parada. | |
|Coloca en la ventana del watch las variables alum (variable del programa |[pic]|
|principal) y a (parámetro formal del procedimiento). La ventana del watch | |
|tendrá el aspecto que se muestra a la derecha. Por una parte se ve que alum es| |
|una estructura (signo + a la izquierda del nombre). Por otra parte, el ||
|computador todavía no reconoce la variable a (porque aún no se ha hecho la | |
|llamada al procedimiento. | |
|Despliega la estructura alum (clica en el signo +) y ejecuta paso a paso las |[pic] ||tres sentencias del programa principal que asignan valores a los campos de la | |
|estructura. La ventana del watch mostrará algo parecido a lo que ves a la | |
|derecha. | |
|Fijateen el valor del campo nombre. El número raro que hay a la izquierda del| |
|valor del campo (“Juan”) es la dirección de memoria donde está esa | |
|información. Escribe es un papel ese número. | |
|Ejecutaahora hasta el siguiente punto de parada. La ventana del watch |[pic] |
|mostrará algo parecido a lo que ves a la derecha | |
|El computador ha entrado en el procedimiento, y ya reconoce la variable a. Sin| |
|embargo, ahoraya no sabe que es la variable alud, porque pertenece al | |
|programa principal que hemos abandonado temporalmente.. | |
|Despliega la estructura a (clica en el signo +). Verás algo como lo que hay en|[pic] |
|la derecha….