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 |