Vad är Dereference Operator?

Dereference-operatorn är en symbol som används i datorprogrammering för att hämta ett värde som finns på en specifik minnesadress. Operatören, vanligtvis representerad av en asterisk i källkoden, appliceras före en variabel som pekar på en minnesadress eller pekare. Kallas ibland indirektionsoperatorn, den kan också användas när man deklarerar eller initierar variabler för att indikera att de är pekare till en datatyp och inte själva datatypen. När man bestämmer ordningsföljden för operationer har dereferensoperatorn företräde framför nästan alla matematiska standardoperatorer.

För att förstå vad den här operatören gör är det viktigt att förstå hur datatyper i datorprogrammering fungerar. En variabel i ett program kan innehålla ett värde. Många gånger är detta helt enkelt ett heltal eller en teckensträng. Andra gånger kan det vara en minnesadress som pekar på ett heltalsvärde. Variabler som innehåller minnesadresser kallas pekare.

När det är nödvändigt att tilldela, modifiera eller hämta data som är lagrad på minnesadressen som en pekare innehåller, måste dereference-operatorn användas. Om en matematisk operation, t.ex. addition, görs till en pekarvariabel utan att hänvisa till den, kommer operationen att utföras på minnesadressen och inte variabeln som den pekar mot. Det finns tillfällen då aritmetiska operationer som utförs på minnesadresser kan förbättra effektiviteten, som i fallet med att stega genom en array, vilket är anledningen till att denna funktion finns. När dereference-operatorn används på en pekare kommer alla operationer att utföras på data som är lagrad på minnesplatsen och inte själva minnesadressen.

Operatören kan också användas när en ny variabel först deklareras. Genom att placera operatorn mellan variabeltypen och variabelnamnet kommer den att indikera att den nya variabeln ska vara en pekare till en datatyp och inte bara en instans av typen. Variabler som skapas på detta sätt måste initieras med någon typ av minnesallokeringsfunktion, eftersom pekaren måste ställas in på en oanvänd minnesplats av minneshanteraren som programmet använder.

Det finns vissa faror som måste undvikas när du använder dereference-operatören. Mest anmärkningsvärt är ett försök att avreferera en pekare som är null eller odefinierad. Pekaren har tekniskt sett ingen minnesadress, så olika fel eller undantag kommer att genereras som kommer att stoppa exekvering av ett program. Det finns nollsäkra versioner av dereference-operatorn som inte orsakar ett fel, men dessa operatorer har en annan syntax.