Kas yra dereference operatorius?

Kompiuterių programavimo metu dezertoriaus operatorius, taip pat žinomas kaip netiesioginis operatorius, veikia rodyklės kintamajame ir grąžina vietos vertę arba l reikšmę, kurią jis nurodo atmintyje. C programavimo kalba defero operatorius žymimas žvaigždute ( * ).

Pvz., C dalyje galime deklaruoti kintamąjį x, turintį sveikojo skaičiaus reikšmę, ir kintamąjį p, kuris turi žymiklį į sveiko skaičiaus reikšmę atmintyje:

 int x; int * p; 

Čia žvaigždutė pasakoja kompiliatoriui, " p nėra sveikasis skaičius, o rodyklė į vietą atmintyje, kurioje yra sveikas skaičius." Čia tai nėra dereference, bet rodyklės deklaracijos dalis.

Dabar galime nustatyti p vietą, kuri yra skirta x vertei, naudodami & operatorių, o tai reiškia „adresą“.

 p = & x; 

Šis veiksmas pasakoja kompiliatoriui: „Adreso atmintyje adresas, kuriuo nurodomas p, yra adresas, kurį priskyrėte sveikam skaičiui x “.

Norėdami iliustruoti, jei nustatome x į 1 vertę naudojant įprastą metodą ir spausdinsime vertę, išvestis bus 1 .

 x = 1; printf ("% d", x); 

Tačiau mes taip pat galime pakeisti x vertę nurodydami p . Tai darome žvaigždute:

 * p = 2; printf ("% d", x); 

Ir išėjimas keičiasi į 2 .

Kitaip tariant, po to, kai p buvo paskelbtas žymekliu, kurio tipas yra toks pat, kaip ir x, ir tada nustatomas nukreipti į x vertę, mes galime naudoti x ir * p pakaitomis. Kadangi jie abu nurodo tą patį dalyką, vieno asmens vertės keitimas pakeis kito vertę.

Rodyklė, programavimo sąlygos, kintamasis