Foros del Web » Programación para mayores de 30 ;) » C/C++ »

duda que no veo la diferencia entre devolver int*& e int*

Estas en el tema de duda que no veo la diferencia entre devolver int*& e int* en el foro de C/C++ en Foros del Web. Hola es que tengo una duda por mas que he probado funciones para averiguar la diferencia entre devolver en una función usando punteros: int*& fun(); ...
  #1 (permalink)  
Antiguo 09/08/2013, 13:37
 
Fecha de Ingreso: octubre-2012
Mensajes: 14
Antigüedad: 11 años, 5 meses
Puntos: 0
duda que no veo la diferencia entre devolver int*& e int*

Hola es que tengo una duda por mas que he probado funciones para averiguar la diferencia entre devolver en una función usando punteros:

int*& fun(); e int* fun();


Es que no veo la diferencia alguien me puede decir que diferencia se produce al poner &??? graciass.
  #2 (permalink)  
Antiguo 09/08/2013, 15:14
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: duda que no veo la diferencia entre devolver int*& e int*

int*&? Creo que te refieres a int&.

Lo segundo es una "referencia" a un entero, una referencia es una variación los punteros clásicos (aparecieron en C++).
  #3 (permalink)  
Antiguo 09/08/2013, 15:28
 
Fecha de Ingreso: octubre-2012
Mensajes: 14
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: duda que no veo la diferencia entre devolver int*& e int*

si tienes razón creo que lo he soñado, devolver int*& no existe por lo que acabo de ver en varios ejemplos oks gracias.
  #4 (permalink)  
Antiguo 09/08/2013, 20:30
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: duda que no veo la diferencia entre devolver int*& e int*

Pero claro que existe una diferencia.

int& es azúcar sintáctica para manejar punteros.

Y como tal claro que existe una diferencia entre int* e int*&

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void f1(int *f) {
  6.     int a = 10;
  7.     f = &a;
  8.     cout << "f1 " << f << endl;
  9. }
  10.  
  11. void f2(int *&f) {
  12.     int a = 10;
  13.     f = &a;
  14.     cout << "f2 " << f << endl;
  15. }
  16.  
  17. int main() {
  18.  
  19.     int f = 10;
  20.     int *p = &f;
  21.    
  22.     cout << "1 " << p << endl;
  23.     f1(p);
  24.     cout << "1 " << p << endl;
  25.  
  26.     cout << "2 " << p << endl;
  27.     f2(p);
  28.     cout << "2 " << p << endl;
  29.    
  30.     return 0;
  31. }

Mira como la primer función `f1` pasa el valor por copia. Mientras la segunda función `f2` pasa el puntero por referencia.

En cualquiera de los 2 casos ten cuidado.
  #5 (permalink)  
Antiguo 12/09/2013, 00:42
 
Fecha de Ingreso: octubre-2012
Mensajes: 14
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: duda que no veo la diferencia entre devolver int*& e int*

si muchas gracias acabo de ver tu respuesta y tienes razón,grax por la aclaración

Etiquetas: devolver, diferencia, funcion, int
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:16.