128 Godzina 9
Stop. Przeczytaj tę definicję jeszcze raz. Wskaźnik jest zmienną. O zmiennych wiesz już dużo; są to obiekty, które mogą przechowywać jakąś wartość. Zmienna typu całkowitego przechowuje wartości całkowite. Zmienna typu znakowego przechowuje litery. Zmienna typu wskaźnikowego przechowuje adres w pamięci.
Co to jest adres w pamięci? Żeby to dokładnie zrozumieć musisz poznać podstawowe zasady funkcjonowania pamięci komputera. Nie jest to trudne.
Pamięć jest miejscem przechowywania wartości. Pamięć dzieli się na sekwencyjnie ułożone komórki. Każda komórka ma swój adres.
Każda zmienna, każdego typu umieszczona jest pod odrębnym adresem. Rysunek 9.1. schematycznie pokazuje sposób przechowywanie w pamięci zmiennej typu unsigned long (o przykładowej nazwie wiek)
Pamięć
Wiek
Schematyczna reprezen tacja zmiennej Wiek
' 10110101 01110110 11110110 11101110
I I I I I I I I I I I I I
100 101 102 103 104 105 106 107 108 109 110 111 112 113
każda komórka = 1 bajt
zmienna wiek typu unsigned long = 4 bajty = 32 bity nazwa zmiennej wiek wskazuje na pierwszy bajt adres zmiennej wiek to 102
Pamięć jest różnie adresowana, w zależności od typu komputera. Zazwyczaj programista nie musi wiedzieć jaki jest szczegółowy adres danej zmiennej, od tego jest kompilator. Jeśli jednak chcesz się bliżej z tym zapoznać, możesz wykorzystać operator adresu ( & ). Przykład 9.1. demonstruje użycie tego operatora.
0:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10
11
12
// Listing 9.1 Demonstracja operatora adresu // i adresów zmiennych
#include <iostream.h>
int main()
{
unsigned short shortVar = 5; unsigned long longVar = 65535; long sVar = -65535;
cout « "shortVar:\t" « shortVar;
cout « "\tAdres shortVar:\t" « &shortVar « "\n";
Stop. Przeczytaj tę definicję jeszcze raz. Wskaźnik jest zmienną. O zmiennych wiesz już dużo; są to obiekty, które mogą przechowywać jakąś wartość. Zmienna typu całkowitego przechowuje wartości całkowite. Zmienna typu znakowego przechowuje litery. Zmienna typu wskaźnikowego przechowuje adres w pamięci.
Co to jest adres w pamięci? Żeby to dokładnie zrozumieć musisz poznać podstawowe zasady funkcjonowania pamięci komputera. Nie jest to trudne.
Pamięć jest miejscem przechowywania wartości. Pamięć dzieli się na sekwencyjnie ułożone komórki. Każda komórka ma swój adres.
Każda zmienna, każdego typu umieszczona jest pod odrębnym adresem. Rysunek 9.1. schematycznie pokazuje sposób przechowywanie w pamięci zmiennej typu unsigned long (o przykładowej nazwie wiek)
Pamięć
Wiek
T—“—I-T-1-1-1-T
Schematyczna reprezen tacja zmiennej Wiek
10110101 01110110 11110110 11101110
i i i i_I_I_I_I_I_I_I_I_I_
100 101 102 103 104 105 106 107 108 109 110 111 112 113
każda komórka = 1 bajt
zmienna wiek typu unsigned long = 4 bajty = 32 bity nazwa zmiennej wiek wskazuje na pierwszy bajt adres zmiennej wiek to 102
Pamięć jest różnie adresowana, w zależności od typu komputera. Zazwyczaj programista nie musi wiedzieć jaki jest szczegółowy adres danej zmiennej, od tego jest kompilator. Jeśli jednak chcesz się bliżej z tym zapoznać, możesz wykorzystać operator adresu ( & ). Przykład 9.1. demonstruje użycie tego operatora.
0: II Listing 9.1 Demonstracja operatora adresu
1: //i adresów zmiennych
2:
3: #include <iostream.h>
4:
5: int main ()
6: (
7: unsigned short shortVar = 5;
8: unsigned long longVar = 65535;
9: long sVar = -65535;
10:
11: cout « "shortVar:\t" « shortVar;
12: cout « "\tAdres shortVar:\t" « SshortYar « "\n";