PROBLEME AVEC LES PARAMETTRES D'UNE FONCTION en C
Fermé
jechmaki masudi
Messages postés
19
Date d'inscription
lundi 19 août 2013
Statut
Membre
Dernière intervention
22 septembre 2015
-
24 oct. 2013 à 20:24
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 24 oct. 2013 à 22:13
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 24 oct. 2013 à 22:13
A voir également:
- PROBLEME AVEC LES PARAMETTRES D'UNE FONCTION en C
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction filtre excel n'existe pas - Forum Excel
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer à l'aide d'une formule. proposez une formule comportant une seule fonction et à recopier vers le bas dans la colonne a du fichier à télécharger. quelle formule sera en a9 ? ✓ - Forum Excel
1 réponse
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
24 oct. 2013 à 22:13
24 oct. 2013 à 22:13
Bonsoir, ça ne semble pas évident au premier abord mais en fait, ta fonction
J'explique: en C, tout est copié d'une fonction à l'autre. Tout. Que ce soit un
Donc quand tu appelles la fonction
Pour pouvoir changer le contenu d'une variable, dans ce cas, il faut utiliser un pointeur, qui pointera vers la zone de la mémoire qui contient le contenu de la variable.
Ce qui donnera la fonction suivante:
echange... ne fait rien.
J'explique: en C, tout est copié d'une fonction à l'autre. Tout. Que ce soit un
int, un
unsigned byte, un
struct, ou même un pointeur (
void*par exemple).
Donc quand tu appelles la fonction
echange(nb1,nb2), les paramètres nb1 et nb2 sont copiés et la fonction bénéficie de sa propre copie.
Pour pouvoir changer le contenu d'une variable, dans ce cas, il faut utiliser un pointeur, qui pointera vers la zone de la mémoire qui contient le contenu de la variable.
Ce qui donnera la fonction suivante:
void echange(int* a,int* b)Qui donc se fera appeler comme ceci:
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
echange(&nb1,&nb2);C'est pas forcément façile à comprendre au début, et mes explications ne sont pas complètes; je te propose de lire la partie sur les pointeurs du tutoriel de C d'Openclassrooms.