Red de conocimiento informático - Problemas con los teléfonos móviles - Programación VB completa los espacios en blanco, ¿por qué las variables a=30, b=30, c=15?

Programación VB completa los espacios en blanco, ¿por qué las variables a=30, b=30, c=15?

Debido a que de acuerdo con las reglas de direccionamiento, los tres parámetros en la función personalizada fun () son todos parámetros, entonces, ¿qué es "direccionar"?

De hecho, es para pasar parámetros;

Veamos un ejemplo simple para ilustrar:

subcomando privado1_click()

dim a como entero,b como entero

a = 5: b = 10

print a, b ' Muestra los valores de a, b antes de llamar a la función, display : 5 10

print fun(a, b) 'Llama a la función y genera el resultado, muestra: 199

print a, b 'Muestra los valores de a, b antes de llamar a la función, muestre: 10100 10

end sub

función privada divertida (x como entero, Byval y como entero) como entero

x = 100

y = 99

fun = x + y

función final

Después de llamar a la función, muestra: 199. ¿Es eso? ¿bueno? Pero después de llamar a la función, vuelve a mostrar: 100 10?

La razón es que en la función personalizada fun(), la palabra clave Byval antes de x (se omite ByRef) es el parámetro de dirección e y es el parámetro de valor. La diferencia entre ellos es que la llamada anterior; se le pasa la dirección de la variable correspondiente; y el último pasa su valor; el resultado es que los parámetros del primero en la función personalizada son variables cambiadas por llamadas externas, mientras que el segundo no cambiará las variables de las llamadas externas. El resultado es que los cambios en los parámetros en la función personalizada del primero son cambios en las variables de la llamada externa, mientras que el segundo no cambia las variables de la llamada externa.

Ahora regrese y analice su código;

Dado que los tres parámetros en la función personalizada fun() son parámetros que cumplen con las reglas de direccionamiento, cada llamada Al final, el Los valores de a, b y c son los valores de los últimos x, y y z de la función.

Llamado 2 veces en la declaración print fun (a, b, c) + fun (a, b, c)

La primera vez, antes de la llamada, a = 5, b = 10, c = 15, después de ingresar a la función: x=5, y=10, z=15,

La primera vez, después de la llamada, cuando finaliza la función;

z = x '5, además de c también es 5 (la llamada dirección de transferencia, es decir, la dirección apuntada por la variable interna z de la función es la variable externa c)

x = x + y '15, distintos de a también son 15

y = y + z '15 y b distintos de '15 también son 15

fun = x + y '30

En este momento, a=15,b=15 ,c=5

La segunda vez, antes de llamar. a=15, b=15, c=5, ingresa la función, es decir: x=15, y=15, z=5,

La segunda vez, después de la llamada, cuando finaliza la función ;

z = x '15, la c exterior también es 15

x = x + y '30, la a exterior también es 30

y = y + z '30, la b exterior también es 30

fun = x + y '60

Por lo tanto, cuando se llama dos veces, la salida es a, b, c

Ver: 30 30 15

Resumen, pero capta el punto clave. ¡No es difícil de entender! ¡Lo entenderás si lo experimentas más!