listPtr [5] = 5; ++ ListPtr; ++ ListPtr; ++ ListPtr; ++ ListPtr; ++ ListPtr; jos (listPtr == NULL) {cout} --listPtr; --listPtr; --listPtr; --listPtr; --listPtr; palata 0; } Sinulla dekrementoidaan osoitin, yhtä monta kertaa, että olet kasvatetaan sitä. Jos et dekrementoidaan, indeksi hakasulkeissa varten osoitin ei enää vastaa niiden tarkoitettu (alkuperäinen) arvo; nojalla tämän edellytyksen, osoitin indeksi ei palauta oikeaa arvoa. Lue edellä koodi, jos et ole tehnyt niin (kokeile).
On edelleen ongelma: Oletetaan, että uusi elementti ei voitu lisätä, koska sen osoitin osoittaisi muistin asema jo ottanut jonkin muun esineen meille tuntemattomia. Siinä tapauksessa, kun increment osoitin monta kertaa se olisi silti viittaavat osoite, joka on olemassa, joka ei ole nolla. Tässä tapauksessa, jos tarkistus NULL kertoo meille, että osoite on olemassa, mutta osoite ei olisi meidän elementti (ja sen arvo). Tämä on väärä johtopäätös.
Parempi testi on seuraava: jos (* listPtr! = 5) {cout} IF-ehto, me epäviittausongelman osoittimen muistiin paikan oletettu lisätty objekti ja näemme, jos palautettu arvo on sama kuin arvo lähetimme lisätty alkuaine. Ohjelmaan yläpuolella arvo lähetimme oli 5. Iterator osoitin on osoite kohteen muistiin. Näimme ongelma edellä, että kun siirrät osoittimen array (array nimi) edessä monta kertaa, sinun täytyy siirtää sen takana yhtä monta kertaa, muuten indeksointi menee pieleen. Joten se ei ole suositeltavaa liikuttaa osoitinta array.
Sinulla voi olla enemmän kuin yksi osoitin osoittaa samaan osoitteeseen muistissa; että on voit olla osoittimet eri nimiä osoittaa samaan osoitteeseen. Edellä mainituissa koodi, halusimme osoite viimeinen (lisätyt) elementti. Voit ratkaista edellä mainittu ongelma (indeksi ongelma), se on hyvä olla osoitin eri nimi, joka skannaa kohde voit saada osoite etsit. Tämä osoite voidaan palauttaa tai tallentaa jonnekin esine (tunniste). Näin osoitin array (array nimi) ei muuta kantaansa ja in