Passage d'argument par pointeur
Massi
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
bojour,
commet faire un passage d'argument à une fonction sur c++ qui me calcule et m'affiche le carré d'un nombre ..
j'ai procédé de cette manière :
#include<iostream>
using namespace std ;
int carre(int * p )
{
int resultat;
resultat=(*p)*(*p);
return resultat;
}
int main()
{
// on veut générer une fonction qui calcule le carré d'un nombre et l'affiche
int a; //je déclare une variable "a" et je l'initialise à 4
cout<<" entrer la valeur de a " <<endl;
cin>>a;
int *p=&a;
cout<< "l'adresse de a est : "<<&p<<endl;
int carre( a); // je fait un appel à la fonction carre
int resultat;
cout<< resultat<<endl;
return 0;
}
commet faire un passage d'argument à une fonction sur c++ qui me calcule et m'affiche le carré d'un nombre ..
j'ai procédé de cette manière :
#include<iostream>
using namespace std ;
int carre(int * p )
{
int resultat;
resultat=(*p)*(*p);
return resultat;
}
int main()
{
// on veut générer une fonction qui calcule le carré d'un nombre et l'affiche
int a; //je déclare une variable "a" et je l'initialise à 4
cout<<" entrer la valeur de a " <<endl;
cin>>a;
int *p=&a;
cout<< "l'adresse de a est : "<<&p<<endl;
int carre( a); // je fait un appel à la fonction carre
int resultat;
cout<< resultat<<endl;
return 0;
}
A voir également:
- Passage d'argument par pointeur
- Passage qwerty azerty - Guide
- Pointeur souris - Guide
- Curseur Windows 10 : comment bien voir la souris à l'écran - Guide
- Test passage windows 11 - Guide
- Passage à windows 11 gratuit - Guide
1 réponse
Salut Massi,
comme cela, cela irait mieux :
en effet :
- comme ta fonction carré a un prototype
- tu déclares une variable resultat dans main, mais tu ne stockes pas la valeur de retour de la fonction dedans, donc tu as une valeur indéterminée
Il faut bien comprendre la notion de portée ou "scope" des variables. Les variables correspondant aux noms que tu définis dans main ont leur propre vie et sont différentes de celles déclarées dans ta fonction, qui sont des variables séparées occupant des espaces mémoire différents et dont la durée de vie ne s'étend que dans le contexte de la fonction. Le fait que tu leur ait donné le même nom que tes variables déclarées dans main ne change rien à l'affaire.
Dal
comme cela, cela irait mieux :
int resultat = carre(p);ou
int resultat = carre(&a);...
en effet :
- comme ta fonction carré a un prototype
int carre(int * p ), tu dois passer un pointeur sur int à la fonction en argument
- tu déclares une variable resultat dans main, mais tu ne stockes pas la valeur de retour de la fonction dedans, donc tu as une valeur indéterminée
Il faut bien comprendre la notion de portée ou "scope" des variables. Les variables correspondant aux noms que tu définis dans main ont leur propre vie et sont différentes de celles déclarées dans ta fonction, qui sont des variables séparées occupant des espaces mémoire différents et dont la durée de vie ne s'étend que dans le contexte de la fonction. Le fait que tu leur ait donné le même nom que tes variables déclarées dans main ne change rien à l'affaire.
Dal