Pojďme se podívat na to, jak se používají ukazatele v programovacím jazyce C.
Budeme se zabývat dvěma proměnnými:
aptr
Setkáme se také se dvěma klíčovými postavami:
- where would return the address location of variable - where means follow the memory address stored in ptr and set that location to 8
Předpokládejme, že a
je umístěn na adrese 0x8130 v paměti a ptr
na 0x8134; předpokládejme také, že se jedná o 32bitový stroj, takže int je 32 bitů velikost. Toto by bylo v paměti po provedení následujícího fragmentu kódu:
int a = 5;int *ptr = NULL;
adresa | obsah |
---|---|
0x8130 | 0x00000005 |
0x8134 | 0x00000000 |
(Zde zobrazený ukazatel NULL je 0x00000000.) Přiřazením adresy a
k ptr
:
ptr = &a;
poskytuje následující hodnoty paměti:
Adresa | Obsah |
---|---|
0x8130 | 0x00000005 |
0x8134 | 0x00008130 |
Potom dereferencí ptr
kódováním:
*ptr = 8;
počítač převezme obsah ptr
(což je 0x8130), „vyhledejte“ tuto adresu a přiřaďte tomuto umístění 8, čímž získáte následující paměť:
adresa | obsah |
---|---|
0x8130 | 0x00000008 |
0x8134 | 0x00008130 |
Je zřejmé, že přístup k a
přinese hodnotu 8, protože předchozí instrukce upravila obsah
pomocí ukazatele ptr
.