Examinemos las declaraciones siguientes:
int var_x;
int* ptrX;
var_x = 6;
ptrX = &var_x;
*ptrX = 12;
printf("value of x : %d", var_x);
La primera línea hace a recopilador reservar un espacio en la memoria para un número entero. La segunda línea dice a recopilador reservar el espacio para almacenar un indicador.
Un indicador es una localización del almacenaje para una dirección. La tercera línea debe recordarte las declaraciones del scanf. La dirección “y” el operador dice el recopilador ir al lugar que almacenó el var_x, y después da la dirección de la localización del almacenaje al ptrX.
El asterisco * delante de una variable dice el recopilador dereference el indicador, y va a la memoria. Entonces puedes hacer asignaciones a la variable almacenada en esa localización. Puedes referirse a una variable y tener acceso a sus datos a través de un indicador. Veamos un ejemplo de indicadores:
/* ilustración del uso del indicador */
#include <stdio.h>
int main()
{
int index, *pt1, *pt2;
index = 39; /* any numerical value */
pt1 = &index; /* the address of index */
pt2 = pt1;
printf("The value is %d %d %d\n", index, *pt1, *pt2);
*pt1 = 13; /* this changes the value of index */
printf("The value is %d %d %d\n", index, *pt1, *pt2);
return 0;
}
La salida del programa será exhibida como sigue:
The value is 39 39 39
The value is 13 13 13 |
|