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.

Transmission par valeur<br />

• La valeur du paramètre est recopiée<br />

→ Valeur initiale du paramètre (variable locale <strong>de</strong> la<br />

fonction)<br />

int somme(int a, int b) {<br />

int s;<br />

s = a+b;<br />

(15)<br />

r<strong>et</strong>urn s;<br />

}<br />

…<br />

X = somme(2, 5*3);<br />

Inconvénients <strong>de</strong> la transmission<br />

par valeur<br />

• Paramètre encombrant (ex. : tableau)<br />

• Une fonction ne renvoie qu'une valeur<br />

M. <strong>Deloizy</strong> Informatique - Généralités 85<br />

M. <strong>Deloizy</strong> Informatique - Généralités 86<br />

Transmission par référence<br />

Pointeurs<br />

• On transm<strong>et</strong> l'adresse du paramètre plutôt que<br />

sa valeur<br />

→ utilisation d'un pointeur (type adresse)<br />

int v;<br />

int *p;<br />

p = &v;<br />

v est un entier<br />

p est l'adresse d'un entier (*p : entier)<br />

p prend comme valeur l'adresse <strong>de</strong> v<br />

Pour accé<strong>de</strong>r à v, on utilise la notation *p<br />

→ signifie : l'entier pointé par p (ici : v)<br />

Pour charger 5 dans v, on peut donc écrire :<br />

v = 5<br />

*p = 5<br />

*(&v) = 5<br />

M. <strong>Deloizy</strong> Informatique - Généralités 87<br />

M. <strong>Deloizy</strong> Informatique - Généralités 88<br />

22

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

Saved successfully!

Ooh no, something went wrong!