déréférencer un pointeur et obtenir la valeur correspondante.
exemple:
#include <stdio.h>
int main(int argc, char **argv) {
int *i_ptr;
int i, j;
i = 5;
i_ptr = &i;
j = *i_ptr;
printf("%d\n", j);
return 0;
}
impressions 5
En C, vous avez des emplacements de mémoire (pensez genre de "boîtes"), et les valeurs vont à l'intérieur. Chaque emplacement de mémoire a une adresse, et vous pouvez stocker cette adresse dans une "variable de pointeur", qui est déclarée avec le type, suivi d'un *
. Par exemple, i_ptr est un pointeur sur un entier (int *
), alors que i
et j
sont des entiers. Cela signifie qu'en mémoire, trois "boîtes" ont été allouées, deux seront prêtes à contenir des nombres réels (i
et j
) et un (i_ptr
) sera prêt à contenir une adresse dans une autre boîte, et vous informerez le compilateur que le La boîte référencée contiendra un nombre.
avec &
vous obtenez l'adresse de la boîte du nom de la boîte: &i
vous donne l'adresse de i
, et vous pouvez stocker dans i_ptr
.
Lorsque vous avez l'adresse de la boîte et que vous voulez visiter la boîte et obtenir la valeur, utilisez *
, par ex. *i_ptr
vous donne la valeur contenue dans la boîte à l'adresse contenue dans i_ptr
.
il vous manque une parenthèse fermée dans la deuxième ligne. –
Nop. Salut non. Une paire pour WORD * et une autre pour l'expression déréférencée. – helios
Merci les gens. Je pense que je l'ai maintenant – Nick