dereference mutatók

Annak érdekében, hogy (olvassa) írt értéket a memória terület által hivatkozott mutató, használja a művelet Indirekció vagy dereference (*). Ez használ egy kurzor nevét csillaggal előtte:

hosszú kettős num = 10;

hosszú kettős Flag;

hosszú kettős * ptr = &Num;

A gyakorlatban igen széles körben használt úgynevezett null (az ilyen üres), ami arra utalhat, bármilyen típusú objektum. Ahhoz, hogy hozzáférjen az objektum, amely hivatkozik a void mutató, először meg kell okozhat ugyanolyan típusú, mint a típus a tárgy.

Vegyünk egy példát, amely szemlélteti a használata null pointer.

Int fő ()

Int nNum = 9;

Void * ptr;

Hozzáférés tömb elemeit keresztül pointerek

char * Parr = ArrayOfChar;

Visszahivatkozási mutató Parr, akkor érhetik el a tartalmat ArrayOfChar [0]:

char Letter = * Parr;

Mivel a C ++ mutatók és tömbök szorosan összefügg, hogy növeljük vagy csökkentjük az értékét a mutatót a tömb, a programozó képes elérni minden elemét a tömb által megfelelő mutatót módosítással:

// Parr jelzi ArrayOfChar [0] ( 'W')

// Parr jelzi ArrayOfChar [3] ( 'L')

// Parr jelzi ArrayOfChar [4] ( 'D')

char Letter = * Parr; // Letter = 'D';

Így, elvégzése után aritmetikai műveletek Parr mutató fog utalni a tömb indexű elem 4.

Ugyanaz az elem lehet hozzáférni bármely más módon:

Letter = * (ArrayOfChar + 4);

// EkvivalentLetter = ArrayOfChar [4];

Ha értékeket az értéket, egy tömbben másik tömb típusú Array [] = Tovább [] vagy Array = Tovább elfogadhatatlan, mert a fordító nem saját példányát az összes érték az egyik van az értékét egy másik. Ehhez a programozó lépéseket kell tenni (elérésekor elemek index ciklikus feladat leggyakrabban használt).