08.04.2014 Views

Algorithmique et Langage - Pages de Michel Deloizy - Free

Algorithmique et Langage - Pages de Michel Deloizy - Free

Algorithmique et Langage - Pages de Michel Deloizy - Free

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Arithmétique <strong>de</strong>s pointeurs<br />

Pointeurs <strong>et</strong> tableaux<br />

Opérations vali<strong>de</strong>s<br />

pointeur<br />

pointeur<br />

pointeur<br />

pointeur<br />

Opérateur<br />

+<br />

-<br />

-<br />

comparaison<br />

entier<br />

entier<br />

pointeur<br />

pointeur<br />

Résultat<br />

Pointeur<br />

Entier<br />

…<br />

p+i accès au<br />

p pointeur<br />

i entier<br />

élément situé à partir <strong>de</strong> p<br />

accès au i ème élément situé à partir <strong>de</strong><br />

⇒ fonctionnement i<strong>de</strong>ntique aux tableaux<br />

p-2<br />

p-1<br />

p p+1 p+2 …<br />

M. <strong>Deloizy</strong> <strong>Langage</strong> C<br />

65<br />

M. <strong>Deloizy</strong> <strong>Langage</strong> C<br />

66<br />

Parcours d’une chaîne <strong>de</strong> caractères<br />

char *p, c;<br />

p = "HELLO";<br />

c = *p; ⇒ c = 'H'<br />

c = *(p+1);<br />

p += 4;<br />

p--; ⇒ *p = 'L'<br />

⇒ c = 'E'<br />

⇒ *p = 'O'<br />

Types <strong>de</strong>s données pointées<br />

Pointeur ± entier ⇒ Valeur du pointeur ± n fois la taille <strong>de</strong> l'élément pointé.<br />

Exemple :<br />

char *pc ; pc pointe sur un caractère (taille : 1 oct<strong>et</strong>)<br />

int *pi ; pi pointe sur un entier (taille : 4 oct<strong>et</strong>s ici)<br />

....<br />

On suppose que pc=0x3AB0 <strong>et</strong> pi=0xE020<br />

pc+1 ; → vaut 0x3AB1<br />

pc+5 ; → vaut 0x3AB5<br />

pi+1 ; → vaut 0xE024<br />

pi+5 ; → vaut 0xE034<br />

⇒ nécessité <strong>de</strong> connaître le type <strong>de</strong> la donnée pointée<br />

l'arithmétique <strong>de</strong>s pointeurs ne fonctionne pas avec <strong>de</strong>s pointeurs void<br />

M. <strong>Deloizy</strong> <strong>Langage</strong> C<br />

67<br />

M. <strong>Deloizy</strong> <strong>Langage</strong> C<br />

68<br />

17

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!