|
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;
*nom-pointeur Û variable
pointée
cout<<pointeur-vers-car;
Þ affiche depuis le 1e car pointé
jq'au car de fin de chaîne
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
pointeur-vers-structure -> nom-champ
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;