[C con Clase] Pregunta sobre Punteros
Edwin Alexander Bohorquez Gamba
edwinprogramacion en hotmail.es
Sab Feb 2 01:23:56 CET 2013
Hola, tengo dos pregunta con respecto al codigo que aparece como ejemplo en el capitulo de punteros como parametros.El codigo es el siguiente:
#include <iostream>using namespace std; void funcion(int *q);//puntero por valor int main() { int a; int *p; a = 100; p = &a; funcion(p); cout << "Variable a: " << a << endl; cout << "Variable *p: " << *p << endl; return 0; } void funcion(int *q) { *q += 50; }
Si en este ejemplo se esta pasando un puntero por valor, no entiendo porque las modificaciones se conservan al abandonar la funcion?. Lo digo porque la salida del programa es :Variable a :150 Variable *p : 150 //esta salida no la entiendo, si los cambios en el propio puntero son locales y no se conservan al regresar, la salida no deberia quedar: Variable *p : 100 ?.
Y la otra pregunta es: Usando el mismo codigo, pero ahora pasando el puntero por referencia, porque la salida del programa es la misma?, si en el anterior se paso por valor y en este por referencia, porque los resultados son iguales?
#include <iostream>using namespace std; void funcion(int *&q);//puntero por referencia int main() { int a; int *p; a = 100; p = &a; funcion(p); cout << "Variable a: " << a << endl; cout << "Variable *p: " << *p << endl; return 0; } void funcion(int *&q) { *q += 50; }
MUCHAS GRACIAS POR SU EXPLICACIÓN !!. Sino es mucha molestia podrian enviar un ejemplo sencillo en el que se vea realmente la diferencia entre pasar un puntero por valor, y pasar un puntero por referencia.De nuevo muchas gracias por compartir su amplio conocimiento con la comunidad de programadores.
ATT: Edwin Bohorquez
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130201/4ecb9240/attachment.html>
Más información sobre la lista de distribución Cconclase