Bases de la programmation en C
int fait 4 octets et un pointeur 8 octets. Si la valeur (l'adresse) d'un pointeur sur int p est 0x1000, quelle est la valeur de p + 3 ?
- A0x100C
- B0x1012
- C0x1018
Afficher la réponse et l'explication
Réponse : A. 0x100C
Ajouter un entier à un pointeur le fait avancer par pas égaux à la taille du type pointé. int fait 4 octets : p + 3 pointe donc 3 × 4 = 12 octets plus loin, soit sur 0x1000 + 0xC = 0x100C. p + 3 est l'adresse de l'élément de tableau p[3], et *(p + 3) a le même sens que p[3]. Un pointeur sur char avance d'un octet à la fois, et un pointeur sur double (8 octets) de 8 octets à la fois.
Continuer : 9 autres questions sur Bases de la programmation en C