Vad är Dereference-operatören?
Duferensoperatören ä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. Ibland kallas indirektionsoperatör, kan dereferensoperatören också användas när man deklarerar eller initierar variabler för att indikera att de är pekare på en datatyp och inte själva datatypen. När du bestämmer arbetsordningens ordning har dereferensoperatören företräde framför nästan alla matematiska standardoperatörer.
För att förstå vad duferensoperatö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 rad tecken. Andra gånger kan det vara en minnesadress som pekar på ett heltal. Variabler som har minnesadresser kallas pekare.
När det är nödvändigt att tilldela, modifiera eller hämta data som lagras på den minnesadress som en pekare innehåller, måste dereferenceoperatören användas. Om en matematisk operation, som tillägg, görs till en pekvariabel utan att återföra den, kommer operationen att utföras på minnesadressen och inte den variabel som den pekar till. Det finns tillfällen då aritmetiska operationer som utförs på minnesadresser kan förbättra effektiviteten, som i fallet med steg genom en matris, varför denna funktionalitet finns. När duferensoperatören används på en pekare, kommer alla operationer att utföras på data som lagras på minnesplatsen och inte själva minnesadressen.
Operatören kan också användas när man initialt deklarerar en ny variabel. Genom att placera operatören mellan variabeltypen och variabelns namn, indikerar det att den nya variabeln bör 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 programmet använder.
Det finns vissa faror som måste undvikas när du använder degferensoperatören. Framför allt är att försöka eliminera en pekare som är noll eller odefinierad. Pekaren har tekniskt inte en minnesadress, så olika fel eller undantag kommer att genereras som kommer att stoppa körningen av ett program. Nollsäkra versioner av dereferensoperatören finns som inte orsakar ett fel, men dessa operatörer har en annan syntax.