Autor
|
Tema: Tipos Valor y Tipos Referencia(Solucionado) (Leído 4,160 veces)
|
Senior++
Desconectado
Mensajes: 957
Ama y haz lo que te de la gana
|
Bueno resulta que estaba "explorando" un foro y un usuario dijo esto:
int variableUno; variableuno= 57
int variableDos; variableDos = variableUno variableUno++
VariableUno crea un espacio en memoria y luego le asigna el valor 57 (hasta aquí estoy de acuerdo) variableDos crea una espacio en memoria y luego le asigna el valor de variableUno(57)
VariableUno tiene el valor 58 en memoria variableDos tiene el valor 57 en memoria Hasta aquí todo perfecto
Pero en este codigo cambia la cosa
int variableUno; variableuno= 57 variableUno++ int variableDos; variableDos = variableUno
VariableUno tiene el valor 58 en memoria variableDos tiene el valor 57 en memoria
osea eso esta mal no? es decir tendria que tener 58 los dos no?
|
|
« Última modificación: 3 Noviembre 2014, 20:48 pm por Senior++ »
|
En línea
|
Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata
|
|
|
El Benjo
|
Sí, así es. No entiendo por qué la duda me refiero a que bastaría con hacer el programa (en cualquier lenguaje) y la respuesta ahí está. Es decir si cualquiera de los dos tiene la duda de qué es lo que pasa, sólo tiene que escribir el código y ejecutar.
MODIFICADO: No entiendo por qué el título de tu post si nunca haces la comparación entre valor y referencia.
Quizá lo que te estés preguntando sea por ejemplo sobre asignar la dirección de una variable en una variable de tipo referencia (como un puntero en C/C++). Si la variableDos fuera un puntero y le asignas la dirección de variableUno entonces su valor no cmabia cuando el valor de la variableUno cambia, pero nunca contiene el valor '57' sino la dirección de la variableUno.
Si necesita más información lee sobre punteros.
|
|
« Última modificación: 3 Noviembre 2014, 19:39 pm por El Benjo »
|
En línea
|
www.es.neftis-ai.comSí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
|
|
|
Senior++
Desconectado
Mensajes: 957
Ama y haz lo que te de la gana
|
Sí, así es. No entiendo por qué la duda me refiero a que bastaría con hacer el programa (en cualquier lenguaje) y la respuesta ahí está. Es decir si cualquiera de los dos tiene la duda de qué es lo que pasa, sólo tiene que escribir el código y ejecutar.
MODIFICADO: No entiendo por qué el título de tu post si nunca haces la comparación entre valor y referencia.
Quizá lo que te estés preguntando sea por ejemplo sobre asignar la dirección de una variable en una variable de tipo referencia (como un puntero en C/C++). Si la variableDos fuera un puntero y le asignas la dirección de variableUno entonces su valor no cmabia cuando el valor de la variableUno cambia, pero nunca contiene el valor '57' sino la dirección de la variableUno.
Si necesita más información lee sobre punteros.
El titulo del post, me equivoque entonces estoy en lo cierto no?osea si llamamos las 2 variables deberian de devolver las dos 58 En este ejemplo esta mas que claro: int i; int j;
i = 1; j = i; i++; j--; Console.WriteLine(String.Format("i={0} j={1}", i, j));
// i=2 j=0, porque al asignar j=i, lo que hacemos es // una copia de su contenido.
Console.ReadKey(); Por que los tipos valor, siempre actuan INDEPENDIENTE el uno del otro, y claro al ver eso en un foro que de hecho es un CURSO, me dolía hasta los ojos
|
|
|
En línea
|
Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
entonces estoy en lo cierto no?osea si llamamos las 2 variables deberian de devolver las dos 58 Sí. Podrías haberlo comprobado por ti mismo como ya te han comentado. Saludos
|
|
|
En línea
|
|
|
|
Senior++
Desconectado
Mensajes: 957
Ama y haz lo que te de la gana
|
Sí. Podrías haberlo comprobado por ti mismo como ya te han comentado.
Saludos
Claro,me dejo en duda, pero bueno ya lo habia probado yo Bueno tema solucionado, vaya fail
|
|
|
En línea
|
Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata
|
|
|
DarK_FirefoX
Desconectado
Mensajes: 1.263
Be the change you wanna see in te world
|
osea eso esta mal no? es decir tendria que tener 58 los dos no?
Exactamente como dices ambos valores debieron ser iguales. Y como bien dice El Benjo, si quieres puedes eplorar los conceptos básicos sobre punteros en C/C++ para entender un poquito más como se trabaja con las direcciones de memoria. Una sugerencia para tu codigo aqui: int i; int j; i = 1; j = i; i++; j--; Console.WriteLine("i={0} j={1}", i, j); /*AQUÍ EN ESTA ^ LINEA NO NECESITABAS * EL MÉTODO string.Format() PARA UTILIZAR LOS *PLACEHOLDERS {#} EN EL MÉTODO Console.WriteLine(). *Solo una sugerencia!*/ // i=2 j=0, porque al asignar j=i, lo que hacemos es // una copia de su contenido. Console.ReadKey();
|
|
« Última modificación: 4 Noviembre 2014, 01:53 am por DarK_FirefoX »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Valor y tipos de datos
Java
|
Erik#
|
0
|
2,060
|
21 Septiembre 2008, 19:56 pm
por Erik#
|
|
|
Tipos de datos en un DataGridView ¿como conservarlos? [Solucionado]
.NET (C#, VB.NET, ASP)
|
Xavelets
|
1
|
6,948
|
5 Septiembre 2011, 14:03 pm
por Xavelets
|
|
|
Tipos de paso por referencia y paso por referencia de tipo apuntador
Programación C/C++
|
CATBro
|
3
|
3,435
|
8 Abril 2012, 08:23 am
por Beakman
|
|
|
Tipos de MITM
Hacking Wireless
|
mester
|
6
|
6,148
|
16 Marzo 2015, 16:28 pm
por mester
|
|
|
Tipos primitivos y tipos por referencia
Java
|
FermatsTheorem
|
4
|
2,733
|
17 Julio 2016, 19:13 pm
por FermatsTheorem
|
|