VARIABLE

identificateur (nom)

type

valeur (contenu)

adresse = adresse du 1e octet

 

Pointeur = variable de type adresse

   contient l'adresse (du 1e octet) d'une autre variable

   taille = 4 octets

   On dit que le pointeur pointe vers la variable

 

Déclarer un pointeur

type-pointé  *  nom-pointeur;

Rq : type-pointé peut être void

 

Initialiser un pointeur

nom-pointeur = &var-pointée;

® le pointeur reçoit l'adresse de la var pointée

 

nom-pointeur Û adresse contenue par le pointeur

 

Rq : &nom-pointeur Û  l'adresse du pointeur

 

Affectation entre pointeurs pointant le même type uniquement.

pointeur1= pointeur2;

 

Accéder à la variable pointée

*nom-pointeur  Û  variable pointée

 

Afficher une ch. de car

cout<<pointeur-vers-car;

Þ affiche depuis le 1e car pointé jq'au car de fin de chaîne

 

Afficher le contenu d'un pointeur vers car

cout<<(void*) pointeur-vers-car;

 

Tableaux

 

char tab[MAX];

Þ tab est un pointeur constant non modifiable qui contient l'adresse de la 1e case du tableau

 

cout<<*tab;  Þ affiche le contenu de la 1e case du tableau

 

tab+i Û  adresse du ie élément du tableau

 

*(tab+i) Û  ie élément du tableau

 

Pointeurs vers types complexes : objets et structures

 

Accéder aux champs

pointeur-vers-structure -> nom-champ

 

Accéder aux attributs

pointeur-vers-objet -> attribut

 

this  Û  pointeur sur objet-cible

 

*this   Û   objet-cible pointé

 

*this->attr1  Þ accès à l'attr1 de l'objet cible

 

Faire avancer le pointeur de n variables (n cellules + loin)

pointeur = pointeur + n*sizeof(*pointeur)

 

Rq : pointeur = pointeur + 6    ajoute 6 à l'adresse contenue dans le pointeur.

 

pointeur + i

Þ désigne la ie variabe après celle pointée

 

cout<<pointeur-sur-caractères;

Þ affiche toute la chaîne jusqu'à l'\0'

 

Pour afficher la valeur d'un pointeur de caractère :

cout<<(void*)pointeur-sur-caractères;