Considere el siguiente programa en un lenguaje hipotético que permite una variable global y una opción de llamada por referencia o llamada por métodos de valor de paso de parámetros.
int i ; program main () { int j = 60; i = 50; call f (i, j); print i, j; } procedure f (x, y) { i = 100; x = 10; y = y + i ; }
¿Cuál de las siguientes opciones representa la salida correcta del programa para los dos mecanismos de paso de parámetros?
(A) Llamada por valor: i = 70, j = 10; Llamada por referencia: i = 60, j = 70
(B) Llamada por valor: i = 50, j = 60; Llamada por referencia: i = 50, j = 70
(C) Llamada por valor: i = 10, j = 70; Llamada por referencia: i = 100, j = 60
(D) Llamada por valor: i = 100, j = 60; Llamada por referencia: i = 10, j = 70
Respuesta: (D)
Explicación: Llamada por valor: se pasará una copia de los parámetros y cualquier actualización que se realice será válida solo para esa copia, dejando intactos los valores originales.
Llamada por referencia: se pasará un enlace a las variables originales, al permitir que la función manipule las variables originales.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA