Bonjour,
Voici un code dont on me demande ce qu'affiche le programme:
J'arrive àCode:#include <stdio.h> int F(int *x, int y){ *x = y + *x; y = y + 2* (*x); printf("(2) *x == %d, y=%d \n",*x,y); return (*x+y); } int G(int **x, int y){ y = **x + y; printf("(4) **x=%d, y=%d \n",**x,y); *x = &y; printf("(5) **x=%d, y=%d \n",**x,y); return (**x + y + 3); } int main(){ int v=2, t=5, *u; u=&t; t=5; *u=*u +v; printf("(1) v= %d, t=%d, *u=%d \n",v, t, *u); t=F(&v,t); printf("(3) v= %d, t=%d, *u=%d \n",v, t, *u); *u=G(&u,v); printf("(6) v= %d, t=%d, *u=%d \n",v, t, *u); }
(1) v=2, t=7, *u=7
(2) *x==9, y=25
(3) v=9, t=34, *u=34
(4) **x=34, y=43
(5) **x=43, y=43
Ce qui est correct mais pour le dernier printf, je cale. Selon moi t et *u devraient être tous les deux égaux à 89.
Donc si une bonne âme pouvait m'expliquer pourquoi ce n'est pas le cas, ce serait fort aimable!
-----