Sadržaj:
Definicija - Što znači neizravni operator?
Operator indirekcije, u kontekstu C #, je operator koji se koristi za dobivanje vrijednosti varijable na koju upućuje pokazivač. Dok pokazivač koji pokazuje na varijablu pruža neizravan pristup vrijednosti varijable pohranjene u njenoj memorijskoj adresi, operator indirekcije usmjerava pokazivač i vraća vrijednost varijable na tom memorijskom mjestu. Operator indirekcije je operirani operator predstavljen simbolom (*).
Operator indirekcije može se koristiti u pokazivaču na pokazivač na cijeli broj, jednodimenzionalnom nizu pokazatelja na cjelobrojne brojeve, pokazivaču na znak i pokazivaču na nepoznatu vrstu.
Operator indirekcije također je poznat i kao operator dereference.
Techopedia objašnjava operatora neizravne vožnje
Simbol (*) koristi se u deklariranju vrsta pokazivača i u vršenju indirekcije pokazivača, dok operator 'address-of' () vraća adresu varijable. Stoga su indirektni operator i adresa operatera obrnuti jedni drugima.
C # omogućuje upotrebu pokazivača samo u nesigurnoj regiji, što podrazumijeva da sigurnost koda unutar te regije nije provjerena zajedničkim izvorom jezika (CLR). U nesigurnoj regiji operater indirekcije ima mogućnost čitanja i pisanja pokazivaču. Sljedeće C # izjave ilustriraju uporabu operatora indirekcije:
- int a = 1, b; // linija 1
- int * pInt = & a; // redak 2
- b = * pInt; // redak 3
Operator indirekcije trebao bi se koristiti za dereferenciranje valjanog pokazivača s adresom koja je poravnata s vrstom na koju ukazuje, kako bi se izbjeglo nedefinirano ponašanje tijekom izvođenja. Ne smije se primijeniti na poništavajući pokazivač ili na izraz koji nije tipa pointera, kako bi se izbjegle pogreške prevoditelja. Međutim, nakon bacanja pokazivača praznine na desni tip pokazivača, može se koristiti indirektni operator.
Kada deklarira više pokazivača u jednoj rečenici, operator indirekcije treba biti napisan samo jednom s temeljnom vrstom, a ne ponavljati za svako ime pokazivača. Operator indirekcije je distributivan u C #, za razliku od C i C ++. Kad se operator indirekcije primijeni na nulti pointer, to rezultira ponašanjem definiranim u implementaciji. Budući da se ovaj operator koristi u nesigurnom kontekstu, ključna riječ unsafe trebala bi se koristiti prije njega zajedno s / nesigurnom opcijom tijekom kompilacije. Ova je definicija napisana u kontekstu C #