Les
pointeurs
q
Ce
sont des variables
particulières qui
contiennent l’adresse d’une variable,
elles ont toujours le même format, sur 68HC11 un pointeur est une valeur sur
16bits.
q
Un
pointeur est déclaré par une * précédée du type de donnée pointée
q
Le
signe & devant une donnée indique l’adresse de celle ci et sa valeur.
q
char *p ;
déclare un pointeur p sur un caractère
q
float *f ;
déclare une pointeur sur un réel.
q
char *fonction(void)
déclare une fonction qui retourne un pointeur sur un caractère
q
void (*fonction) (void)
déclare un
pointeur sur une fonction
q
void (*fonction) (void) =
0x8000
crée un pointeur sur une fonction en 8000
exemples
de manipulation de pointeurs
int a=1,b=2,c ;
/*trois entiers dont deux
initialisés*/
int *p1,*p2 ;
/*deux pointeurs sur des entiers*/
p1=&a ;
/*p1 contient
l’adresse de la variable a*/
p2=p1 ;
/*p2 contient
maintenant aussi l’adresse de a*/
c=*p1 ;
/*c égale le contenue de
l’adresse pointé par p1 donc c=a*/
p2=&b ;
/*p2 pointe b*/
*p2=*p1
/*la donnée à l’adresse
pointé par p2 est placée dans l’adresse pointé par p1, cela revient à donc
recopier a dans b*/
exemple
d’utilisation des pointeurs : la fonction echange :
void
echange(int i ,int j)

{
int k;
k=i;
i=j;
j=k;
}
La fonction echange qui
fonctionne s’écrit comme cela :
void
echange(int *i ,int *j)

{
int k;
k=*i ;
*i=*j ;
*j=k ;
}
|