Obsah:
Definice - Co znamená operátor Indirection?
Indirection operator, v kontextu C #, je operátor používaný k získání hodnoty proměnné, na kterou ukazuje ukazatel. Zatímco ukazatel ukazující na proměnnou poskytuje nepřímý přístup k hodnotě proměnné uložené na její paměťové adrese, operátor indirekce dereferencuje ukazatel a vrací hodnotu proměnné v tomto paměťovém místě. Operátor indukce je unární operátor představovaný symbolem (*).
Operátor indukce může být použit v ukazateli na ukazatel na celé číslo, v jednorozměrném poli ukazatelů na celá čísla, ukazatele na znak a ukazatele na neznámý typ.
Operátor indukce je také známý jako operátor dereference.
Techopedia vysvětluje Indirection operátor
Symbol (*) se používá při deklarování typů ukazatelů a při provádění směrování ukazatelů, zatímco operátor „adresa-of“ () vrací adresu proměnné. Operátor přesměrování a adresa operátora jsou tedy vzájemně inverzními.
C # umožňuje použití ukazatelů pouze v nebezpečné oblasti, což znamená, že bezpečnost kódu v této oblasti není ověřena běžným jazykovým runtime (CLR). V nebezpečné oblasti je operátor směry schopen číst a zapisovat do ukazatele. Následující příkazy C # ilustrují použití operátoru přesměrování:
- int a = 1, b; // řádek 1
- int * pInt = & a; // řádek 2
- b = * pInt; // řádek 3
Operátor indukce by měl být použit k odcizení platného ukazatele s adresou zarovnanou s typem, na který odkazuje, aby se zabránilo nedefinovanému chování za běhu. Nemělo by být použito na neplatný ukazatel ani na výraz, který není typu ukazatele, aby nedošlo k chybám kompilátoru. Po odlití prázdného ukazatele na správný typ ukazatele však může být použit indukční operátor.
Při deklarování více ukazatelů v jednom příkazu by měl být operátor indirekce zapsán pouze jednou s podkladovým typem a neopakovat se pro každý název ukazatele. Operátor indukce je distribuční v C #, na rozdíl od C a C ++. Když je operátor indukce použit na nulový ukazatel, má za následek chování definované implementací. Protože se tento operátor používá v nebezpečném kontextu, mělo by se při kompilaci použít před nebezpečným klíčovým slovem spolu s možností / nebezpečný. Tato definice byla napsána v kontextu C #
