Donc je cherche plutot à voir si ma démarche est correcte
- Code: Tout sélectionner
int sournois(int n, int * m)
{
*m=*m+n;
return *m;
}
int main()
{
int a=5;
if(sournois(a,&a)==(sournois(a,&a))
{
printf("1\n");
}
else
{
printf("0\n");
}
return 0:
}
A la question qu'affiche le programme je répond 0
Car lors du premier appel de sournois(5,&5) on retourne 10 et a prend la valeur 10.
Second appel sournois(10,&10) retourne 20 et a prend la valeur 20.
10 != 20 ==> affichage de 0 et en fin de programme a=20.
Est ce bon ? (surtout pour l'explication).
- Code: Tout sélectionner
void incr(int ** x)
{
**x=**x+1;
}
int main()
{
int a,b;
int *pab;
int **pp;
a=5; b=6;
pab=&a;
pp=&pab;
incr(pp);
pab=&b;
incr(pp);
return 0
}
On cherche les valeurs de a et b à la fin.
==> pab=&a=&5;
pp=&pab=&&5;
incr(&&5) ==> a prend la valeur 6.
pab=&b=&6;
incr(pp=&pab=&&b=&&6) ==> b prend la valeur 7
Donc à la fin a=6 et b=7 ?
Mes résultats / explications sont ils correct ou bien j'ai encore des lacunes sur les pointeurs ? :hum:
Merci à vous
