Indicateurs
Parfois nous voulons savoir où une variable réside dans la mémoire. Un indicateur contient l'adresse d'une variable qui a une valeur spécifique. En déclarant un indicateur, un astérisque est placé juste avant le nom d'indicateur.
L'adresse de l'endroit de mémoire où la variable est stockée peut être trouvée en plaçant une esperluète devant le nom variable.
int num; /* Variable de nombre entier normale */
int *numPtr; /* Indicateur à une variable de nombre entier */
L'exemple suivant imprime la valeur variable et l'adresse dans la mémoire de cette variable.
printf("The value %d is stored at address %X\n",
num, &num);
Pour assigner l'adresse de la variable numérique au numPtr d'indicateur, vous assignez l'adresse du variable, numérique, comme dans l'exemple donné après :
numPtr = #
Pour découvrir ce qui est stocké à l'adresse dirigée à par le numPtr, la variable doit être déréférenciée. Déréférencier est réalisé avec l'astérisque que l'indicateur a été déclaré avec.
printf("The value %d is stored at address %X\n",
*numPtr, numPtr);
Toutes les variables dans un programme résident dans la mémoire. Les rapports donnés au-dessous de la demande que la réservation de compilateur 4 bytes de mémoire sur un ordinateur de 32 bits pour la variable à point mobile X, a alors mis la valeur 6.5 dans elle.
float x;
x = 6.5;
Pendant que l'endroit d'adresse dans la mémoire de la variable est obtenu en plaçant l'opérateur et avant son &x de nom donc est l'adresse du X.C nous permet de miser une étape plus loin et de définir une variable, appelée un indicateur qui contient l'adresse d'autres variables. Plutôt nous pouvons dire que l'indicateur se dirige à l'autre variable. Par exemple :
float x;
float* px;
x = 6.5;
px = &x;
définit le px pour être un indicateur aux objets du type flotteur, et le place égal à l'adresse du X. Ainsi, le *px se rapporte à la valeur de x :
|