Kun dereference operaattori on läsnä, tunniste tarkoitetaan arvoa (laskettuna) terävää esinettä; eli arvo terävällä esineellä voidaan osoittaa tunniste, tai tunniste voi palauttaa arvo terävällä esineellä, kun * on läsnä. Seuraavassa esimerkissä, epäviittausongelma operaattori on käytetty esineen edessä tunnisteen luomisen jälkeen. Lue koodi ja huomaa, että arvo 23,5 on osoitettu terävällä esineellä. Kokeile koodi.
#include int main () {float hisFloat; float * myPointer = & hisFloat; * MyPointer = 23,5; printf ("% f", * myPointer); palata 0; } Jos yritit koodin, olisit ilmoituksen, että tuotanto on ylimääräistä desimaalia. Tämä johtuu siitä, että me käsittelemme kellua. Lähtö ja mitä me kirjoitetaan ovat lähes samat. Antakaamme tuollaista myös tässä opetusohjelmassa.
Noin kolme pistettä huomata On kolme seikkaa huomata: Ensimmäinen kohta on, kun dereference operaattori käytetään vaiheessa ilmoituksen tai alustus (aikana luominen) osoittimen objektin tunnisteen, osoitin tunniste viittaa osoitteen terävillä esineillä. Toinen asia on, luomisen jälkeen terävällä esineellä, puuttuminen viittauksen poisto operaattori edessä tunnisteen osoitin objektin, tarkoittaa, että osoitin tunniste edelleen viittaa osoitteen terävällä esineellä (kuten ensimmäisessä koodisegmentin , yllä - alle luodaan osoitin).
Kolmas asia on, kun dereference operaattori käytetään luomisen jälkeen terävällä esineellä, edessä osoittimen tunnisteen, osoitin tunniste viittaa arvoon terävällä esineellä. Toinen tapa laittaa edellä mainitut tiedot ovat seuraavat: alustuksen aikana osoitin, epäviittausongelman operaattori käytetään tunnisteen osoitin objektin vasemmassa operandin ja oikea operandi on muistiosoite (esim * myPointer = & hisFloat;). Aikana ilmoitus osoitin tunnisteen, dereference operaattori käytetään eteen tunnisteen osoittimen (esim float * myPointer;).
Alustuksen jälkeen tai ilmoituksen osoitin tunnisteen, viittauksen poisto operaattori edessä tunnisteen osoitin objektin tarkoittaa arvoa terävällä esineellä (esim * myPointer = 23,5