Poznaj C++ w$ godziny0139

Poznaj C++ w$ godziny0139



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


Rysunek 9.1

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.

Listing 9.1. Demonstracja adresów zmiennych

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


Rysunek 9.1

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.

Listing 9.1. Demonstracja adresów zmiennych

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";


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0127 Zaawansowane sterowanie programem 115Listing 8.8. Jeszcze raz pętla while
Poznaj C++ w$ godziny0004 Spis rozdziałów Część 1 Wstęp do C++ 1 1 Zaczynamy 3 2 Program w C++ 1
Poznaj C++ w$ godziny0123 Zaawansowane sterowanie programem 111 W linii 32 obliczana jest reszta z d
Poznaj C++ w$ godziny0202 Zaawansowane funkcje 193 W liniach 53 i 54 wypisywany jest wiek obydwu KOT
Poznaj C++ w$ godziny0224 215 TabliceTablice obiektów Każdy obiekt, niezależnie czy jest on standard
Poznaj C++ w$ godziny0236 Tablice 227 jEFEKT DZIAŁANIA: Lancuchl: Nikt nie jest sam Lancuch2: Nikt n
formuły zdaniowe Pojęcia te definiujemy indukcyjnie: Def 3: term 1.    wszystkie zmie
14124 SAVE0333 3 Przeczy lii j list jeszcze raz. Podkreśl dwa sformułowania wyrażające aprobatę
j;-.lrtnńw Przeczytaj tekst w ćw. 2 jeszcze raz. Zakreśl właściwą odpowiedź w każdym ( i I
Poznaj C++ w$ godziny0043 Zmienne i stałe 27Definiowanie zmiennych Zmienne tworzy się i definiuje si
Poznaj C++ w$ godziny0047 Zmienne i stałe 31Kiedy używać short a kiedy long Jednym z problemów progr
Poznaj C++ w$ godziny0076 62Godzina 5 A oto kilka poprawnych definicji: long Pole(long d, long s){ r
Poznaj C++ w$ godziny0083 Funkcje 69Parametry domyślne Do każdego zadeklarowanego w prototypie i def
Poznaj C++ w$ godziny0091 76 Godzina 5 Definicja funkcji musi być zgodna, co do wartości zwracanej,
Poznaj C++ w$ godziny0102 88 Godzina 6 Inicjalizacja łączy w sobie definicję zmiennej z operacją prz
Poznaj C++ w$ godziny0104 90Godzina 6 33:    > 34: 35:    // defini
Poznaj C++ w$ godziny0105 Proste klasy 91 Linia 58 zawiera definicję obiektu Frisky (będącego klasy
Poznaj C++ w$ godziny0110 Więcej o klasach 97 Innym sposobem uzyskania funkcji typu inline jest umie

więcej podobnych podstron