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

Parametro *&

Estas en el tema de Parametro *& en el foro de C/C++ en Foros del Web. void Algun Procedimiento (nodo *&A) . Alguien me puede ayudar a entender cómo funciona este procedimiento ? Antes ya había visto lo que es un ...
  #1 (permalink)  
Antiguo 08/09/2012, 19:50
 
Fecha de Ingreso: septiembre-2012
Mensajes: 1
Antigüedad: 12 años, 2 meses
Puntos: 0
Parametro *&

void Algun Procedimiento (nodo *&A) .

Alguien me puede ayudar a entender cómo funciona este procedimiento ? Antes ya había visto lo que es un puntero doble (**) pero es la primera vez que me encuentro con esto y no sé exactamente que es lo que un procedimiento como este reciben como parámetro.

Gracias de Antemano.
  #2 (permalink)  
Antiguo 08/09/2012, 22:52
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 11 meses
Puntos: 94
Respuesta: Parametro *&

Hola! esto es C++ no?? sino me equivoco hacer *& en la declaracion de una funcion(procedimiento) tendria el mismo funcionamiento a hacer doble puntero **. La diferencia seria en la llamada a dicha funcion. Te dejo un ejemplo simple:
Código C++:
Ver original
  1. void func(int *&);
  2. int main()
  3. {
  4. int *c;
  5. c=(int *)malloc(sizeof(int));
  6. func(c); // paso el puntero "c"
  7. printf("func: %d\n",*c);
  8.    
  9.     return 0;
  10. }
  11.  
  12. void func(int *&p) { // como voy a modificar el puntero "p" agregro & para indicar que se paso por pseudoreferencia
  13.      *p=5;
  14.      return;
  15.      }

Tambien se podria hacer:
Código C++:
Ver original
  1. //en la llamada
  2. func(&c); // paso la direccion de "c" para poder modificarlo en la funcion
  3. .........
  4.  
  5. // en la funcion
  6. void func(int **p) // lo manejo como puntero a puntero ya que "c" se paso por pseudoreferencia
  7. { }


Saludos

Etiquetas: funcion, parametro
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 22:18.