| 
	
		|  Autor | Tema: [?][C]Que diferencia hay en *-& en esta funcion pues eso  (Leído 4,164 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-bit Saludos |  
						| 
								|  |  
								|  |  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,183 |  15 Agosto 2006, 22:46 pm por andoba
 |  
						|   |   | Que error hay en esta funcion php? PHP
 | Alex_bro | 4 | 2,686 |  3 Septiembre 2007, 15:39 pm por Alex_bro
 |  
						|   |   | Que OCX posee esta funcion (VB6) Programación Visual Basic
 | ignorantev1.1 | 0 | 1,650 |  7 Diciembre 2009, 18:43 pm por ignorantev1.1
 |  
						|   |   | Firefox 30, en los pequeños detalles está la diferencia Noticias
 | wolfbcn | 0 | 1,453 |  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 | 1,466 |  19 Diciembre 2018, 21:38 pm por wolfbcn
 |    |