SiGmA9o9/OtL!
06 57 264 576 |
#include | l |
| >Accès indirect aux variables via la mémoire |
int *p, /* variable pointeur (contenue indéterminé!) */
a = 0; /* variable 'int' */
p = &a; /* 'p' prend l'adresse mÚmoire de la variable 'a'
grâce à l'opérateur d'adressage '&' */
*p = 1; /* 'p' accède au contenue de la variable 'a'
grâce a sont adresse en mémoire! */
| l |
| l | Peut importe la 'Classe de mémorisation' un tableau possè de toujours une adresse mémoire! En faite l'adresse de la première variable du Tableau! |
<- - -- ----- --------------------------------------- ----- -- - ->
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
<- - -- ----- --------------------------------------- ----- -- - ->
^ première variable ex :'a[0]' (adresse Dec. aléatoire : 3025)
(n * (sizeof(int))) octets en mèmoire! sont réservés pour le
tableau 'a'.
int *p, /* variable pointeur */
count, /* variable compteur */
a[10]; /* déclaration d'un tableau de 10 'int' (2 ou 4 octets).
'bloc mémoire de (10 * sizeof (int)) octets' */
p = &a; /* 'p' prend l'adresse mémoire du premier 'int'
(pour certain compilateur : 'p = &a[0];'
ou pour d'autres : 'p = a')
for (count = 0;
count < 10;
count++) *p[count] = count; /* le tableau 'a' est initialisé
par des valeurs grâce à l'adresse
mémoire de chaque variable par le
pointeur '*p' */
| l |
<- - -- ----- - ----- -- - ->
| x | y |z |
<- - -- ----- - ----- -- - ->
2 (4) + 4 + 1 Octets réservés en mémoire pour la
structure.
struct base {
int x;
Float y;
char z;
}, position;
struct base *p; /* créer un pointeur de type STRUCTURE */
p = &position; /* 'p' prend la première adresse mémoire
de la structure 'base' */
| l |