Aide sur pointeur
sweetwink
Messages postés
91
Statut
Membre
-
sweetwink Messages postés 91 Statut Membre -
sweetwink Messages postés 91 Statut Membre -
Bonjour, le but de cet exercice est de trouver X,Y,Z le jeu de fonction ne me laisse pas avoir un résultat satisfaisant .merci de m'avoir aider a trouver ces variables qui changent en fonction du pointeur.
int main
int F2 (int A, int * B, int * C);
void F3 (int K, int L, int * M);
int main ( )
{ int X, Y, Z;
X= 4; Y = 3; Z = 14;
X = F2 (X, &Y, &Z);
return (0);
}
int F2 (int A, int * B, int * C)
{
*C = 3;
F3 (A, *B, C);
A = 3;
return (5);
}
void F3 (int K, int L, int * M)
{
K = 2;
L = 9;
*M = K + L;
}
Réponse : X = … Y = … Z = …
int main
int F2 (int A, int * B, int * C);
void F3 (int K, int L, int * M);
int main ( )
{ int X, Y, Z;
X= 4; Y = 3; Z = 14;
X = F2 (X, &Y, &Z);
return (0);
}
int F2 (int A, int * B, int * C)
{
*C = 3;
F3 (A, *B, C);
A = 3;
return (5);
}
void F3 (int K, int L, int * M)
{
K = 2;
L = 9;
*M = K + L;
}
Réponse : X = … Y = … Z = …
A voir également:
- Aide sur pointeur
- Pointeur souris - Guide
- Curseur Windows 10 : comment bien voir la souris à l'écran - Guide
- Le pointeur de mon pc portable ne marche plus - Guide
- Le pointeur de la souris - Guide
- Pointeur souris avec rond de chargement qui clignote sans arrêts ✓ - Forum Windows
2 réponses
Je ne comprends pas la finalité de ce programme.
A moins que quelque chose m'échappe, le résultat est prévisible, à savoir:
X = 5, Y = 3, Z = 11.
Comment en suis-je arrivé là? Le programme aussi d'ailleurs.
- X=5, évident puisque la fonction F2 retourne toujours 5 et comme X = F2...
- Y=3, n'est pas modifié puisque, bien qu'étant passé par adresse à F2, F2 ne modifie pas B puisque B est passé par valeur à F3 et ne peut donc être modifié.
- Z=11, dans F3 la valeur pointée par M sera 11 (9+2), cette valeur est retournée à F2 donc la valeur pointée par C sera 11 (il ne sert d'ailleurs à rien de l'initialiser avec 3), cette valeur est retournée au main, donc la valeur pointée par Z sera 11 (il ne sert d'ailleurs à rien de l'initialiser avec 14).
Le programme pourrait d'ailleurs être ainsi simplifié:
A moins que quelque chose m'échappe, le résultat est prévisible, à savoir:
X = 5, Y = 3, Z = 11.
Comment en suis-je arrivé là? Le programme aussi d'ailleurs.
- X=5, évident puisque la fonction F2 retourne toujours 5 et comme X = F2...
- Y=3, n'est pas modifié puisque, bien qu'étant passé par adresse à F2, F2 ne modifie pas B puisque B est passé par valeur à F3 et ne peut donc être modifié.
- Z=11, dans F3 la valeur pointée par M sera 11 (9+2), cette valeur est retournée à F2 donc la valeur pointée par C sera 11 (il ne sert d'ailleurs à rien de l'initialiser avec 3), cette valeur est retournée au main, donc la valeur pointée par Z sera 11 (il ne sert d'ailleurs à rien de l'initialiser avec 14).
Le programme pourrait d'ailleurs être ainsi simplifié:
int F2 (int * C);
void F3 (int * M);
int main ()
{
int X, Y = 3, Z;
X = F2 (&Z);
return (0);
}
int F2 (int * C)
{
F3 (C);
return (5);
}
void F3 (int * M)
{
*M = 11;
}