PROBLEME AVEC LES PARAMETTRES D'UNE FONCTION en C
jechmaki masudi
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
ElementW Messages postés 4814 Date d'inscription Statut Contributeur Dernière intervention -
ElementW Messages postés 4814 Date d'inscription Statut Contributeur Dernière intervention -
VOICI MON header:
#ifndef ECHANGE_H_INCLUDED
#define ECHANGE_H_INCLUDED
void echange(int a,int b);
#endif // ECHANGE_H_INCLUDED
et SON IMPLMENTATION EN .C
#include <stdio.h>
void echange(int a,int b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
en main j'ai
#include <stdio.h>
void main()
{
int nb1=12,nb2=3;
echange(nb1,nb2);
printf("%d",nb1);
printf("%d",nb1);
}
Apres compilation,j'ai toujours le meme resultat,donc:nb1=12 et nb2=3.
AIDEZ MOI SVP.
#ifndef ECHANGE_H_INCLUDED
#define ECHANGE_H_INCLUDED
void echange(int a,int b);
#endif // ECHANGE_H_INCLUDED
et SON IMPLMENTATION EN .C
#include <stdio.h>
void echange(int a,int b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
en main j'ai
#include <stdio.h>
void main()
{
int nb1=12,nb2=3;
echange(nb1,nb2);
printf("%d",nb1);
printf("%d",nb1);
}
Apres compilation,j'ai toujours le meme resultat,donc:nb1=12 et nb2=3.
AIDEZ MOI SVP.
A voir également:
- PROBLEME AVEC LES PARAMETTRES D'UNE FONCTION en C
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- 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
- Comment colorer une cellule excel en fonction du contenu d'une autre cellule - Forum Bureautique
1 réponse
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.