Título: [?][C]Que diferencia hay en *-& en esta funcion pues eso Publicado por: anonimo12121 en 18 Febrero 2011, 21:38 pm void view(int &var,char* comentario)... en esto me sale la memoria que es creo...
y void view(int var,char* comentario)... me sale 0x... los mismo en los 2 Citar #include <iostream> using namespace std; void view(int &var,char* comentario){ cout << &var <<"\t| " << var << "\t|" << comentario << "\n"; }; int main(int *argc,char *argv[]){ int evento=555; int salida=999; cout << "Memoria" <<"\t\t|" << "Valor" << "\t|" << "comentarios\n"; while(1){ view(evento,"var para eventos"); view(salida,"var comparacion con evento"); cin >> evento; if(evento == salida) break; } cout << "salida del programa"; cin.get(); cin.get(); return 0; } Título: Re: [?][C]Que diferencia hay en *-& en esta funcion pues eso Publicado por: Garfield07 en 18 Febrero 2011, 21:46 pm La diferencia es que el primero manda la dirección de var y el segundo su contenido
Suerte! Título: Re: [?][C]Que diferencia hay en *-& en esta funcion pues eso Publicado por: anonimo12121 en 18 Febrero 2011, 21:48 pm La diferencia es que el primero manda la dirección de var y el segundo su contenido en la segunda de donde saca 0x22FF44 por poner un ejemplo de las 2 variables . que manda la direccion de la variable de la funcion?Suerte! Título: Re: [?][C]Que diferencia hay en *-& en esta funcion pues eso Publicado por: Garfield07 en 18 Febrero 2011, 22:20 pm en la segunda de donde saca 0x22FF44 por poner un ejemplo de las 2 variables . que manda la direccion de la variable de la funcion? No se te entiende nada...Al usar & se manda la dirección de lo que pongas... Por ejemplo Código
Suerte! Título: Re: [?][C]Que diferencia hay en *-& en esta funcion pues eso Publicado por: Littlehorse en 18 Febrero 2011, 22:42 pm Código
En esta función, "var" es una referencia. Es decir, las referencias actúan "como si fuesen" un puntero pero no lo son. Desde el punto de vista del programador, "var" no apunta a "evento" si no que es "evento". La dirección de memoria y el contenido de "var" es la misma que la de "evento" u la de "salida" o sea cual sea la variable entero que le pases a la función. Código
En este caso, lo que se espera es solo un entero por valor. Por lo tanto "var" va a tener una dirección de memoria distinta que "evento" u "salida" pero si el mismo valor, por lo menos al momento de la llamada. Citar void view(int &var,char* comentario)... en esto me sale la memoria que es creo... y void view(int var,char* comentario)... me sale 0x... los mismo en los 2 Si en ambas llamadas te salen direcciones de memoria es porque en la función vos estas buscando imprimir la dirección de memoria de "var" y luego su valor. Código
Saludos Título: Re: [?][C]Que diferencia hay en *-& en esta funcion pues eso Publicado por: anonimo12121 en 19 Febrero 2011, 00:39 am OK entendido. y unda duda más ya que estamos XDD que consume más un int* o un int? osea punteros o variables.
PD: si es largo de explicar da = ya busco informacion... gracias por compartir la informacion. Título: Re: [?][C]Que diferencia hay en *-& en esta funcion pues eso Publicado por: Garfield07 en 19 Febrero 2011, 01:02 am OK entendido. y unda duda más ya que estamos XDD que consume más un int* o un int? osea punteros o variables. PD: si es largo de explicar da = ya busco informacion... gracias por compartir la informacion. Pues exactamente lo mismo :P 4 y 4 bytes xD Título: Re: [?][C]Que diferencia hay en *-& en esta funcion pues eso Publicado por: Littlehorse en 19 Febrero 2011, 01:13 am El tamaño depende de la arquitectura, no siempre va a ser 4 bytes.
Saludos Título: Re: [?][C]Que diferencia hay en *-& en esta funcion pues eso Publicado por: Garfield07 en 19 Febrero 2011, 01:27 am Mmm, pero siempre van a ser los mismos. X es un puntero a un int. X es un int. Los punteros a una variable y la variable ocupan lo mismo, no? Corrígeme si me equivoco :P
_____________________________ Modf: Es pura coincidencia, toda clase de puntero ocupa cuatro bytes, que son 0xXXYYZZAA. Fallo mío. En el caso del int y int * da la casualidad de que son iguales, pero no en los demás :-[ Título: Re: [?][C]Que diferencia hay en *-& en esta funcion pues eso Publicado por: Littlehorse en 19 Febrero 2011, 01:49 am Mmm, pero siempre van a ser los mismos. X es un puntero a un int. X es un int. Los punteros a una variable y la variable ocupan lo mismo, no? Corrígeme si me equivoco :P _____________________________ Modf: Es pura coincidencia, toda clase de puntero ocupa cuatro bytes, que son 0xXXYYZZAA. Fallo mío. En el caso del int y int * da la casualidad de que son iguales, pero no en los demás :-[ Los punteros ocupan lo necesario para almacenar direcciones de memoria, y no, no necesariamente tienen que tener el mismo tamaño del tipo de variable a la que pueden apuntar. De hecho, no podría ser nunca de esa manera, ¿Imaginas un puntero a char de 1 byte? no tendría la capacidad para almacenar la dirección de memoria correctamente. El tamaño ya sea de los punteros u de cualquier otro elemento depende de la arquitectura y del modelo de datos utilizado. No es lo mismo un puntero en una arquitectura x86 que en una x64. Para mas información: http://en.wikipedia.org/wiki/64-bit Saludos |