« Introduction générale à la programmation/Pointeurs » : différence entre les versions

Contenu supprimé Contenu ajouté
m conjugaison
→‎Les pointeurs : clarification
Ligne 24 :
Enfin, l'homme qui a vu l'homme qui a vu l'ours est le pointeur qui connait l'adresse de l'homme qui connait l'adresse de l'ours. Là encore, si l'on appelle le pointeur de pointeur, on connait le pointeur, donc l'ours. C'est à dire la variable. Simple, non ?
}}
 
=== Quel est l’intérêt des pointeurs ===
 
* En langage c, une fonction ne peut retourner au maximum qu'une seule valeur.
Ligne 29 ⟶ 31 :
L'utilisation de pointeurs en langage c permet aux arguments (valeurs qui entrent dans une fonction) de conserver leurs modifications. Cela veut dire que grâce aux pointeurs une fonction peut retourner autant de valeurs qu'elle a d'arguments.
 
* Une fonction fait des copies des arguments passés par valeurs, et travaille avec ces copies. Ceci évite de modifier les valeurs des arguments par inadvertance. Cela signifie aussi que sur des arguments 'gros' (des grands tableaux par exemple), il faut que la fonction ai copié la totalité du tableau avant de travailler dessus.
 
{{Exemple|titre=Exemple d'utilisation du pointeur
| contenu =
Que se passerait-il si on passait en argument à une fonction une vidéo ou une encyclopédie ?
 
Ligne 36 ⟶ 40 :
 
Si on passait à cette fonction l'adresse (un pointeur) du premier octet de la vidéo ou de l'encyclopédie, cela serait bien plus rapide :)
}}
 
Attention, on travaille directement avec les données originales. Il vaudrait donc mieux avoir une copie de ces fichiers avant d'appeler la fonction.
 
* En langage c le nom d'une fonction est un pointeur. On peut donc l'utiliser comme argument d'une fonction.
 
 
DONC :
# Les pointeurs permettent de s'affranchir de la limite de '1 seul argument par fonction'.
# Les pointeurs permettent de travailler directement sur les valeurs en mémoire, sans réaliser de 'copie de travail' pour la fonction, gourmandes en temps de cycle et en mémoire (mais avec le risque de corrompre les données).
# On peut utiliser directement le nom de la fonction comme argument pour celle ci, en l'utilisant comme un pointeur.
 
 
{{Exemple|titre=Exemple d'utilisation du pointeur