Obsah:
Definícia - Čo znamená operátor Indirection?
Indirection operator, v kontexte C #, je operátor používaný na získanie hodnoty premennej, na ktorú ukazuje ukazovateľ. Zatiaľ čo ukazovateľ ukazujúci na premennú poskytuje nepriamy prístup k hodnote premennej uloženej v jej pamäti, operátor smerovania dereferencuje ukazovateľ a vracia hodnotu premennej v tomto pamäťovom mieste. Operátor presmerovania je unárny operátor predstavovaný symbolom (*).
Operátor indukcie sa môže použiť v ukazovateli na ukazovateľ na celé číslo, v jednorozmernom poli ukazovateľov na celé čísla, ukazovateľ na znak a ukazovateľ na neznámy typ.
Operátor presmerovania je tiež známy ako operátor dereferencie.
Techopedia vysvetľuje Indirection operátor
Symbol (*) sa používa na deklarovanie typov ukazovateľov a na vykonávanie smerovania ukazovateľov, zatiaľ čo operátor „adresa-of“ () vráti adresu premennej. Operátor presmerovania a adresa operátora sú teda navzájom inverznými.
C # umožňuje použitie ukazovateľov iba v nebezpečnej oblasti, čo znamená, že bezpečnosť kódu v tejto oblasti nie je overená spoločným jazykovým runtime (CLR). V nebezpečnej oblasti môže operátor smeru čítať a zapisovať do ukazovateľa. Nasledujúce príkazy C # ilustrujú použitie operátora presmerovania:
- int a = 1, b; // riadok 1
- int * pInt = & a; // riadok 2
- b = * pInt; // riadok 3
Operátor presmerovania by sa mal použiť na dereferenciu platného ukazovateľa s adresou zladenou s typom, na ktorý ukazuje, aby sa predišlo nedefinovanému správaniu za behu. Nemalo by sa použiť na neplatný ukazovateľ alebo na výraz, ktorý nie je typu ukazovateľa, aby sa predišlo chybám kompilátora. Po obsadení prázdneho ukazovateľa na správny typ ukazovateľa sa však môže použiť operátor smerovania.
Pri deklarovaní viacerých ukazovateľov v jednom príkaze by mal byť operátor presmerovania zapísaný iba raz s podkladovým typom a nemal by sa opakovať pre každý názov ukazovateľa. Operátor indukcie je distribučný v C #, na rozdiel od C a C ++. Ak sa operátor presmerovania použije na nulový ukazovateľ, výsledkom bude správanie definované implementáciou. Pretože sa tento operátor používa v nebezpečnom kontexte, kľúčové slovo nebezpečné by sa malo použiť pred kompiláciou spolu s možnosťou / nebezpečný počas kompilácie. Táto definícia bola napísaná v kontexte C #




