57 lines
1.1 KiB
Plaintext
57 lines
1.1 KiB
Plaintext
-------- TP14 : Adresses ---------
|
|
|
|
1.
|
|
|
|
# include <stdio.h>
|
|
# include <stdlib.h>
|
|
|
|
int main(void){
|
|
float a;
|
|
double b;
|
|
long double c;
|
|
char d;
|
|
short int e;
|
|
int f;
|
|
unsigned long int g;
|
|
a = 12.5;
|
|
b = 2.0;
|
|
c = 48.8;
|
|
d = 'a';
|
|
e = 4;
|
|
f = 18;
|
|
g = 89;
|
|
printf("%p\n", &a);
|
|
printf("%p\n", &b);
|
|
printf("%p\n", &c);
|
|
printf("%p\n", &d);
|
|
printf("%p\n", &e);
|
|
printf("%p\n", &f);
|
|
printf("%p\n", &g);
|
|
return EXIT_SUCCESS;
|
|
}
|
|
|
|
|
|
On remarque que les valeurs données à chaque adresse diffèrent à chaque exécution du programme,
|
|
mais que la "distance" qui sépare les adresses est toujours la même, distance qui dépend de la taille
|
|
de la donnée à stocker en mémoire.
|
|
|
|
2.
|
|
|
|
Le programme affichera l'adresses des lettres minuscules de a à z présentes dans la variable p.
|
|
Après exécution : aBcDeFgHiJkLmNoPqRsTuVwXyZ
|
|
|
|
3.
|
|
|
|
RIEN COMPRIS ??????
|
|
|
|
4.
|
|
|
|
Programme annexe :
|
|
|
|
long int n = 4614256656552045848L;
|
|
double* p = (double*) &n;
|
|
printf("π = %f\n", *p);
|
|
return EXIT_SUCCESS;
|
|
|
|
Il retourne la valeur 4618760256959462783.
|
|
En la mettant dans le programme de base, on se retrouve avec 6.283186, soit 2π. |