Concepte de programare: pointeri

Să aruncăm o privire asupra modului în care sunt folosiți pointerii în limbajul de programare C.

Vom trata două variabile: >

aptr

De asemenea, vom întâlni două caractere cheie:

- where
would return the address location of variable
- where
means follow the memory address stored in ptr and set that location to 8

Să presupunem că a se află la adresa 0x8130 în memorie și ptr la 0x8134; presupunem, de asemenea, că este o mașină de 32 de biți, astfel încât un int să aibă 32 de biți în dimensiune. Următorul este ceea ce ar fi în memorie după executarea următorului fragment de cod:

int a = 5;int *ptr = NULL;

Adresă Conținut
0x8130 0x00000005
0x8134 0x00000000

(Pointerul NULL afișat aici este 0x00000000.) Prin atribuirea adresei a la ptr:

 ptr = &a;

produce următoarele valori ale memoriei:

Adresă Conținut
0x8130 0x00000005
0x8134 0x00008130

Apoi, prin dereferențierea ptr prin codificare:

 *ptr = 8;

computerul va prelua conținutul ptr (care este 0x8130), „localizați” acea adresă și atribuiți 8 locației respective obținând următoarea memorie:

Adresă Conținut
0x8130 0x00000008
0x8134 0x00008130

În mod clar, accesarea a va produce valoarea 8 deoarece instrucțiunea anterioară a modificat conținutul

prin intermediul indicatorului ptr.

Leave a Reply

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *