9
Notion n°11 : La vérité sur le stockage des variables
Environnement, Mémoire, Adresses, Pointeurs (2)
●Il existe une qui permet de stocker une à une certaine , et un
catalogue des noms () qui donne les adresses des valeurs associées
CATALOGUE des noms
(ENVIRONNEMENT)
TOTO 8HH(48
Y8KIH(<L
X8JIH<
adressenom
MEMOIRE
8HH(48
8KIH(<L
8JIH<
adresse contenu
"salut le monde"
16
3.14159
Remarque:
Les « boîtes » ou « box » (emplacements)
en mémoire peuvent être de tailles
différentes (en nombre d'octets)
10
Notion n°11 : La vérité sur le stockage des variables
Environnement, Mémoire, Adresses, Pointeurs (3)
●Pour comprendre ce que sont les , supposons de faire l'affectation suivante:
:6>F>B7
CATALOGUE des noms
(ENVIRONNEMENT)
8HH(48
F8KIH(<L
B8JIH<
: 8L88
adressenom
MEMOIRE
8HH(48
8KIH(<L
8JIH<
adresse contenu
"salut le monde"
16
3.14159
Remarque:
Il y a des noms,
tels que TOTO, Y, X, LISTE
et des sous-noms,
tels que LISTE[0], LISTE[1], LISTE[2]
Et il y a donc :
des adresses (de noms) stockéesdansl'environnement
des adresses (de sous-noms) stockéesdanslamémoire.
Un pointeur est une adresse
(par exemple 8L8867)
où est stockée comme valeur
une autre adresse (par exemple 8KIH(<L).
C'estuneadressequiindique(pointe)uneautreadresse
8L88
8HH(488KIH(<L8JIH<
:
(trois sous-boîtes)
687 67 67
11
Notion n°11 : La vérité sur le stockage des variables
Environnement, Mémoire, Adresses, Pointeurs (4)
●Par extension du sens, un qui est associé à un pointeur lui même (tout
comme on dit qu'un nom associé à un entier est un entier, etc)
●Les sont directement associés à des adresses dans l'environnement.
Exemple: F →8KIH(<L
●Les # sont indirectement associés à des adresses, en passant par l'environnement et
la mémoire. Exemple: :67 →8L8867→8KIH(<L
●On appellera , tout ce qui est associé à une adresse de façon directe (nom) ou
indirecte (sous-nom)
●En Python, l'unique qui existe est une #$#%:
D?DBCD
–Le (sémantique) de l'affectation se comprend en deux étapes :
(1) L'expression BCD est et donne une valeur v qui se trouvait déjà en mémoire à
l'adresse a, ou qui a été fraîchement calculée et placée à l'adresse a. De toute façon,
l'évaluation de BCD a & v
(2) La est associée maintenant à l'adresse a (si c'est un , en ajoutant ou
modifiant un lien dans l'; si c'est un #, en ajoutant ou
modifiant un lien dans la )
12
Notion n°11 : La vérité sur le stockage des variables
Environnement, Mémoire, Adresses, Pointeurs (5)
●En Python, l'unique qui existe est une #$#%:
D?DBCD
(1) L'évaluation de BCD a & v
(2) La est associée maintenant à l'adresse a
● (la référence est un )
FFM
CATALOGUE des noms
(ENVIRONNEMENT)
8HH(48
8KIH(<L
8JIH<
"salut le monde"
16
3.14159
8L88
8HH(488KIH(<L8JIH<
:
(trois sous-boîtes)
687 67 67
MEMOIRE
8HH(48
F8KIH(<L
F8L888<
B8JIH<
: 8L88
adressenom
8L888< 32
Emplacement
recyclable?