Autor
|
Tema: [?][C]Que diferencia hay en *-& en esta funcion pues eso (Leído 3,715 veces)
|
anonimo12121
|
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 #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; }
|
|
|
En línea
|
|
|
|
Garfield07
Desconectado
Mensajes: 1.121
¡Este año voy a por todas! JMJ 2011
|
La diferencia es que el primero manda la dirección de var y el segundo su contenido
Suerte!
|
|
|
En línea
|
* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente. * No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado. * Si compila esta bien, si arranca es perfecto. ¡Wiki elhacker.net!Un saludo
|
|
|
anonimo12121
|
La diferencia es que el primero manda la dirección de var y el segundo su contenido
Suerte!
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?
|
|
|
En línea
|
|
|
|
Garfield07
Desconectado
Mensajes: 1.121
¡Este año voy a por todas! JMJ 2011
|
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 #include <stdio.h> int main () { int var = 1; printf ("Var [0x%08x] vale %d", &var , var ); return 0; }
Suerte!
|
|
|
En línea
|
* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente. * No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado. * Si compila esta bien, si arranca es perfecto. ¡Wiki elhacker.net!Un saludo
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
void view(int &var,char* comentario)
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. void view(int var,char* comentario)
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. 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. cout << &var <<"\t| " << var << "\t|" << comentario << "\n";
Saludos
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
anonimo12121
|
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.
|
|
|
En línea
|
|
|
|
Garfield07
Desconectado
Mensajes: 1.121
¡Este año voy a por todas! JMJ 2011
|
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 4 y 4 bytes xD
|
|
|
En línea
|
* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente. * No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado. * Si compila esta bien, si arranca es perfecto. ¡Wiki elhacker.net!Un saludo
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
El tamaño depende de la arquitectura, no siempre va a ser 4 bytes.
Saludos
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
Garfield07
Desconectado
Mensajes: 1.121
¡Este año voy a por todas! JMJ 2011
|
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 _____________________________ 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
|
|
|
En línea
|
* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente. * No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado. * Si compila esta bien, si arranca es perfecto. ¡Wiki elhacker.net!Un saludo
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
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 _____________________________ 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-bitSaludos
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
es conveniente esta funcion?
Programación Visual Basic
|
elmaro
|
2
|
2,019
|
15 Agosto 2006, 22:46 pm
por andoba
|
|
|
Que error hay en esta funcion php?
PHP
|
Alex_bro
|
4
|
2,186
|
3 Septiembre 2007, 15:39 pm
por Alex_bro
|
|
|
Que OCX posee esta funcion (VB6)
Programación Visual Basic
|
ignorantev1.1
|
0
|
1,550
|
7 Diciembre 2009, 18:43 pm
por ignorantev1.1
|
|
|
Firefox 30, en los pequeños detalles está la diferencia
Noticias
|
wolfbcn
|
0
|
1,248
|
11 Junio 2014, 13:27 pm
por wolfbcn
|
|
|
8, 16 o 32 GB de RAM: esta es la diferencia de rendimiento jugando en PC
Noticias
|
wolfbcn
|
0
|
948
|
19 Diciembre 2018, 21:38 pm
por wolfbcn
|
|