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.