Pointerek, címek és változók

Vegyünk egy másik kódot:

int theVariable = 5;

int * pPointer = theVariable;

Ábra. 8.3. Memória elosztási rendszer

Adatok elérése keresztül pointerek







Listing 8.2. Adatok elérése keresztül pointerek

1: // lista 8.2. használata pointerek

5: typedef unsigned short int USHORT;

8: USHORT myAge; // változó

9: USHORT * page = 0; // pointer

11: cout <<"myAge: " <

12: page = &myAge; // számít egy oldalt adrzs myAge

13: cout <<"*pAge: " <<*pAge <<"\n\n";

14: cout <<"*pAge = 7\n";

15: * page = 7; // hozzárendeli a myAge 7

16: cout <<"*pAge: " <<*pAge <<"\n";

17: cout <<"myAge: " <

18: cout <<"myAge = 9\n";

20: cout <<"myAge: " <

21: cout <<"*pAge: " <<*pAge <<"\n";

Elemzés: myAge típusa unsigned short Page, egy mutató az ilyen típusú: két deklaráljuk a programban. A 10 vezetéken, a változó oldal hozzárendelve érték 5, és a 11. sor értéke jelenik meg.

A 19. sor értéke myAge ismét változott. Most ez a változó sorszámot 9. Továbbá, a 20. és 21. utalunk ezt az értéket közvetlenül (egy változó) és visszahivatkozási a mutatót is.







Listing 8.3. Mi van írva az index?

1: // lista 8.3. Mi van tárolva az index?

3: #include

8: unsigned short int myAge = 5, yourAge = 10;

9: unsigned short int * PAGE = &myAge; // pointer

10: cout <<"myAge:\t" <

11: cout <<"&myAge:\t" <<&myAge <<"\t&yourAge;\t" <<&yourAge <<"\n";

12: cout <<"pAge;\t" <

13: cout <<"*pAge:\t" <<*pAge <<"\n";

14: page = &yourAge; // mutató átváltoztató

15: cout <<"myAge:\t" <

16: cout <<"&myAge:\t" <<&myAge <<"\t&yourAge:\t" <<&yourAge <<"\n";

17: cout <<"pAge:\t" <

18: cout <<"*pAge:\t" <<*pAge <<"\n";

19: cout <<"&pAge:\t" <<&pAge <<"\n";

myAge: 5 yourAge: 10

myAge: 0x355C yourAge: 0x355E

myAge: 5 yourAge: 10

myAge: 0x355C yourAge: 0x355E

(Az eredmények eltérőek lehetnek.)

Ahhoz, hogy állapítsa meg a mutatót, írja első típusú változó vagy objektum fog hivatkozni ez a mutató, és helyezzük egy csillaggal (*), és a mögötte - az új kurzor nevét, például:

unsigned short int * pPointer = 0;

unsigned short int theVariable = 5;

unsigned short int * pPointer = theVariable;

Ahhoz, hogy egy mutató hivatkozás feloldási, meg előtte a nevét dereference operátor (*):

unsigned short int theValue = * pPointer

Mik a jelei

• Tárolja az adatokat szabad memória területek és az azokhoz való hozzáférést;

• hozzáférés a változók és függvények osztályok;

• át úgy paraméterek, a link funkciót.

A fennmaradó fejezetet szentel a dinamikus adatkezelési és műveletek változók és az osztály funkcióit.




Kapcsolódó cikkek