Kaj je operater dereference?

Operater dereferenciranja je simbol, ki se uporablja v računalniškem programiranju za pridobivanje vrednosti, ki se nahaja na določenem pomnilniškem naslovu. Operater, ki ga v izvorni kodi običajno predstavlja zvezdica, se uporabi pred spremenljivko, ki kaže na pomnilniški naslov ali kazalec. Včasih se imenuje posredni operater, lahko pa se uporablja tudi pri deklariranju ali inicializaciji spremenljivk, da pokaže, da so kazalci na tip podatkov in ne na sam tip podatkov. Pri določanju vrstnega reda operacij ima operator dereference prednost pred skoraj vsemi standardnimi matematičnimi operatorji.

Da bi razumeli, kaj ta operater počne, je pomembno razumeti, kako delujejo tipi podatkov v računalniškem programiranju. Spremenljivka v programu lahko vsebuje vrednost. Velikokrat je to preprosto celo število ali niz znakov. V drugih primerih je lahko pomnilniški naslov, ki kaže na celo število. Spremenljivke, ki hranijo pomnilniške naslove, se imenujejo kazalci.

Kadar je treba dodeliti, spremeniti ali pridobiti podatke, ki so shranjeni na pomnilniškem naslovu, ki ga vsebuje kazalec, je treba uporabiti operator dereference. Če se matematična operacija, kot je seštevanje, izvede za kazalno spremenljivko brez dereferenciranja, bo operacija izvedena na naslovu pomnilnika in ne na spremenljivki, na katero kaže. Včasih lahko aritmetične operacije, ki se izvajajo na pomnilniških naslovih, povečajo učinkovitost, na primer v primeru prehoda skozi matriko, zato ta funkcionalnost obstaja. Ko je na kazalcu uporabljen operator dereferenciranja, bodo vse operacije izvedene na podatkih, ki so shranjeni na pomnilniški lokaciji, in ne na samem pomnilniškem naslovu.

Operater se lahko uporabi tudi pri začetnem deklariranju nove spremenljivke. Če operator postavite med tip spremenljivke in ime spremenljivke, bo to nakazalo, da mora biti nova spremenljivka kazalec na tip podatkov in ne le primer tipa. Spremenljivke, ki so ustvarjene na ta način, je treba inicializirati z neko vrsto funkcije dodeljevanja pomnilnika, ker bo moral upravljalnik pomnilnika, ki ga uporablja program, nastaviti kazalec na neuporabljeno pomnilniško mesto.

Obstaja nekaj nevarnosti, ki se jim je treba izogniti pri uporabi operaterja dereferenciranja. Najpomembnejši je poskus dereferenciranja kazalca, ki je nič ali nedefiniran. Kazalec tehnično nima pomnilniškega naslova, zato bodo ustvarjene različne napake ali izjeme, ki bodo ustavile izvajanje programa. Obstajajo varne različice operatorja dereferenciranja, ki ne bodo povzročile napake, vendar imajo ti operatorji drugačno sintakso.