2.2 KiB
#C 11
Exercice 2
Description ligne par ligne du programme:
- la case mémoire 'a' prend la valeur 3
- la case mémoire 'p1' prend en valeur l'adresse de la case mémoire 'a'
- la case mémoire 'b' prend la valeur stoquée dans 'a' (donc 3)
- la case mémoire 'p2' prend en valeur l'adresse de la case mémoire 'b' (différente de celle de 'a')
- la case mémoire 'a' prend la valeur 5
- la valeur stoquée dans la case mémoire dont l'adresse est stoquée en case 'p1' (donc 'a') est incrémentée (passe de 5 à 6)
- la case mémoire 'b' prend la valeur 8
- la case mémoire dont l'adresse est stoquée en 'p2' (donc 'b') prend la valeur 12.
- la case mémoire 'p1' prend pour valeur l'adresse stoquée dans la case mémoire 'p2' (donc l'adresse de 'b')
- la case mémoire dont l'adresse est stoquée en 'p1' (donc 'b' maintenant) prend la valeur 15.
État final: p1=p2=&b et a=6 et b=15
Exercice 3
Ce programme produit des warnings à la compilation sur des erreurs de cast. En effet, un pointeur vers un flottant (&x) essaye de rentrer dans un pointeur vers un flottant, ce qui a techinquement la même taille, mais qui exprime souvent une erreur de conception.
Sinon, le programme affiche l'entier représenté par la suite de bits corerspondant à la représentaton en binaire du flotant 2.4. En l'ocurence 1075419546.
Exercice 4
Description ligne par ligne du programme:
- Une case 'a' est réservée à un entier.
- L'adresse de 'a' est stoquée dans une autre case mémoire 'addr'
- Une nouvelle case memoire est créee pour y stoquer le resultat de l'appel à la fonction
f 0. Le paramètre est passée en valeur. Ce qui signifie que x contient la valeur qui lui a été donnée en paramètre, donc l'adresse de la case mémoire 'a'.
- La valeur contenue dans la case mémoire dont l'adresse est stoquée dans la case mémoire 'x' est définie à 0.
- La case mémoire 'x' est définie à 0 (ne pointe plus vers aucune case mémoire) (le pointeur NULL).
- Renvoie la valeur présente dans la case mémoire 'x'.
Donc a=0, addr=&a, addr2=NULL.
Exercice 6
scanf prend des pointeurs afin de pouvoir «retourner» plusieurs valeurs. Avec des valeurs, on aurait accès qu'à la valeur de retour de scanf, pas très utile.