TUTORIAL: Punteros y referencias

  • genux
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Ene 22, 2010
  • Mensajes: 106
  • Loc: UK
  • Status: Offline

Nota Enero 27th, 2010, 4:49 am

Introducción


Punteros y referencias son sólo formas de acceder a los datos que se almacena en la memoria. Los fundamentos de un puntero (*) son que es bien almacenará un valor NULL o un valor de una posición de memoria en los datos reales es. La referencia (&) es la actual dirección de ubicación de la memoria de una variable. Hice un puntero de función tutorial ( html "> cpp-tutorials/tutorial-function-pointers-t101998.html ) Y esto a raíz de un puntero con lo que es.

Variable estándar - diseño de la memoria


Digamos que en la posición de memoria 0x004 había un valor de 15. Bien, esta posición de memoria 0x004 que se podría llamar un valor entero con un nombre de intValue, ejemplo de código
Código: [ Select ]
int intValue = 15;

Con el diseño de la memoria de la
Código: [ Select ]
Memory location : Value
0x004 --------- : 15
  1. Memory location : Value
  2. 0x004 --------- : 15


Asignación de punteros y el valor de


Un puntero a la variable en 0x004 (intValue) tendrá otra ubicación de la memoria le permite decir, en 0x010 por lo que un ejemplo de código se
Código: [ Select ]
int *intPointer= NULL;

las mejores prácticas para cambiar a NULL, y si desea asignar el puntero a la intValue tendrá que dar a la ubicación de los punteros de memoria el valor de la dirección de la ubicación de la memoria como intValue
Código: [ Select ]
intPointer = &intValue;

y ahora el ejemplo de memoria para 0x010 (el punteroInt) sería
Código: [ Select ]
Memory location : Value
0x010 --------- : 0x004
  1. Memory location : Value
  2. 0x010 --------- : 0x004

Es el valor de la ubicación de la memoria real y no el valor de 15, ya que el valor de la intValue. Para obtener el valor en realidad es necesario eliminar la referencia al puntero con el * como a continuación
Código: [ Select ]
cout << "pointer value = " << intPointer << " the value = " << *intPointer << endl;

Esa es la salida
valor del puntero = 0x004 el valor = 15.

[tuthead] Conclusión