Pregunta: | 5685 - DIFERENCIA ENTRE VARIABLES DE PROCEDIMIENTOS |
Autor: | samuel martin del rio |
En turbo psacal 7.0 cuando declaramos los procedimientos ,los colocamos:
PROCEDURE(variables1:tipo_variable;VAR variables2:tipo_variables2); VAR variables3:tipo_variables3; -Mi duda es :¿Cual es la diferencia entre las variables1,variables2,variables3?,¿y para que sirven y se utilizan cada una de estas variables? GRACIAS. |
Respuesta: | Carlos Christian Molina Vega |
La diferencia que existe entre las variables es la sgte.
procedure a(b:integer) begin b=9; end; declara el PARAMETRO B como un parametro que se pasa por valor. Me refiero a que si usted lo llama de la sgte forma var z:integer; begin z:=15; a(z); writeln(z); {desplegaria 15} end. la variable que se pasa como argumento (z) no sufre ningun cambio. Porque el contenido de ella se copia a la "variable" B. Sin embargo si se declara asi procedure a(VAR b:integer); al llamarlo de la forma anterior, B no seria una copia de la variable z, sino que esta accesando directamente a la direccion de memoria de la variable z. Si usted cambia en B algo, seria igual como cambiarlo en Z. var z:integer; begin z:=15; a(z); writeln(z); {desplegaria 9} end. A esta ultima forma se llama paso de parametros por referencia. Lo va a entender mejor cuando trabaje con punteros. |