J'ai debuté mon apprentissage du langage C, il y a maintenant un
moment. Seulement, cela fait 2 ans que j'ai arrété ( et oui 2 ans de prepa
). J'ai donc repris presque à zero avec un peu plus de rigueur il y a 2
semaines.
Ma question porte sur le lien entre paramètre formel et paramètre
courant :
D'aprés ce que j'ai compris pour une fonction utilisant des variables
normales ( pas des pointeurs ), la définition de la fonction ce fait sous la
forme :
void fonction( int a, int b) { ... } par exemple
lorsque l'on appelle cette fontion, l'instruction s'ecrit sous la forme :
fontion(5, 7) ; par exemple
L'affectation des entiers 5 et 7 avec les variables locales a et b est sous
entendu -> int a = 5 ; int b = 7 ;
-------------------------------------
Maintenant si je veux modifier les valeurs des paramètres, je doit passé
par les pointeurs et donc utiliser une fonction dit "de référence".
la fonction s'écrit sous la forme :
void fonction(int *ptr_a, int *ptr_b) { ... } par exemple
je veut modifier la valeur des variables : int a ; int b ; à l'aide de la
fonction ci-dessus, pour cela j'appelle cette dernière fonction de la
manière suivante :
fonction(&a, &b) ;
Cette foi ci, l'affectation sous entendu est la suivante :
int *ptr_a = &a ; int *ptr_b = &b ;
Cependant *ptr_a et *ptr_b sont des entiers, et &a et &b sont des
adresses mémoires, il s'agit donc de deux groupes d'éléments appartenant
à deux ensembles différents, les affections précédentes n'ont pour moi
aucun sens !
l'affectation sous entendu serait plutot :
int ptr_a = &a ; int ptr_b = &b ;
Aidez moi à comprendre le lien entre paramètre formel et paramètre
courant. Cela est encore pour moi trés obscure !
Partager