Qu'est-ce que Pointeur ?
Variable dont la valeur est l'adresse mémoire d'une variable, d'un élément de tableau, d'une fonction, etc. En C, on le déclare comme int *p ; &x donne l'adresse de x, et *p lit ou écrit la valeur pointée par p. Ajouter un entier à un pointeur le fait avancer par pas égaux à la taille du type pointé. Dans la plupart des expressions, le nom d'un tableau est converti en pointeur sur son premier élément, si bien que a[i] a le même sens que *(a + i). La valeur qui ne pointe nulle part s'appelle le pointeur NULL.
Nom japonais: ポインタ
« Pointeur » apparaît dans 25 questions d'entraînement réparties sur 8 thèmes, dont Bases de la programmation en C, Structures de données et algorithmes, ISA et assembleur.
Domaine: Bases de la programmation en C
Questions fréquentes
Quelle est la taille d'un pointeur ?
8 octets dans de nombreux environnements 64 bits, et 4 octets sur les microcontrôleurs 32 bits. Les pointeurs sur des données ont en général la même taille, qu'ils pointent sur un char ou sur un double. Un pointeur n'a pas forcément la même taille qu'un int : pour ranger une adresse dans un entier, on utilise uintptr_t de stdint.h.
Quelle différence y a-t-il entre const char *p et char *const p ?
const char *p est un « pointeur sur un char const » : on ne peut pas modifier les caractères à travers p, mais on peut faire pointer p lui-même ailleurs. char *const p est un « pointeur const » : on ne peut pas modifier p, mais on peut modifier ce qu'il pointe. Règle de lecture : const à gauche de * fige ce qui est pointé, const à droite fige le pointeur lui-même.