Título: ¿Error compilador? Publicado por: Baal_30 en 19 Junio 2014, 14:52 pm Muy buenas, haciendo un ejercicio para intercambiar dos valores, hecho con dos funciones, una con llamada por valor, y otra por referencia, está todo correcto, pero a la hora de compilar, en el paso de parámetros por valor, no me cambia los valores, o sea, que en val1 es = 10 y val2 = 20.
He repasado todo el código y no encuentro nada, me estoy volviendo loco :/ Código
Si alguien me puede aclarar porqué ocurre esto, se lo agradecería ^^ Título: Re: ¿Error compilador? Publicado por: engel lex en 19 Junio 2014, 15:21 pm Por valor básicamente se crea una copia de la variable dentro de la funcion con los valores pasados, justamente el paso por referencia es que pasen los punteros permitiendo modificar el valor original, esta funcionando bien, asi es :p
Básicamente por eso se llama asi... el paso por valor solo pasas los valores, por referencias pasas la referencia (el puntero que señala la variable) y no el valor realmente Título: Re: ¿Error compilador? Publicado por: Baal_30 en 19 Junio 2014, 19:59 pm Ya, pero paso los valores a la función, y en ella cambio los valores de v1 y v2 y luego al mostrarlo por pantalla, salen sin haberse cambiado, eso es lo que no entiendo :/
Título: Re: ¿Error compilador? Publicado por: engel lex en 19 Junio 2014, 21:12 pm Te explico de nuevo
Al pasarlo por valor, tu funcion crea una copia de tus variables y modifica esa copia, las originales no las vuelve a tocar Es similar a Int a = 1; int b = a; a = 2; En este caso b vale 1 porque fue una copia de a cuando su valor era 1 Título: Re: ¿Error compilador? Publicado por: JorgeEMX en 19 Junio 2014, 21:21 pm Osea que, en otras palabras, debes usa un return para mostrar los valores intercambiados (podrías ocupar un arreglo o una estructura).
Título: Re: ¿Error compilador? Publicado por: Baal_30 en 19 Junio 2014, 21:47 pm Umm vale, eso no lo sabía. Uf, me ha liado más todavía :/
Muchas gracias por responder a ambos. :D Título: Re: ¿Error compilador? Publicado por: engel lex en 19 Junio 2014, 22:06 pm Es mas facil recordar que por valo SOLO pasa el contenido
Título: Re: ¿Error compilador? Publicado por: Baal_30 en 19 Junio 2014, 22:55 pm Es mas facil recordar que por valo SOLO pasa el contenido Merci! :) |