Sdílet prostřednictvím


Typy ukazatele (C# program televize)

V kontextu unsafe může být typ ukazatele typu, zadejte hodnotu nebo typ odkazu.Deklarace typu ukazatel má jednu z těchto forem:

type* identifier;
void* identifier; //allowed but not recommended

Kterýkoli z následujících typů může být typ ukazatele:

Typy ukazatele nedědí z objektu a neexistují žádné převody mezi typy ukazatele a object.Ukazatele, nepodporují boxerská a unboxing.Lze však převést mezi různé ukazatele a mezi typy ukazatele a nedílnou.

Když deklarujete více ukazatelů ve stejné deklaraci * zapisuje společně s pouze základní typ není jako předponu názvu každého ukazatele.Příklad:

int* p1, p2, p3;   // Ok
int *p1, *p2, *p3;   // Invalid in C#

Ukazatel nelze bod nebo na odkaz struct obsahující odkazy, protože odkaz na objekt může být do koše i v případě, že je ukazatel přejdete.GC nebude sledovat, zda objekt je právě aktivní všechny typy ukazatele.

Hodnota ukazatele proměnné typu myType* je adresa proměnné typu myType.Deklarace typu ukazatel, jak ukazují následující příklady:

Příklad

Description

int* p

p je ukazatel na celé číslo

int** p

p je ukazatel na ukazatel na celé

int*[] p

p je jednorozměrná pole ukazatelů na celá čísla

char* p

p je ukazatel znak (Char)

void* p

p je ukazatel na neznámý typ

Operátor nepřímé odkazování ukazatel * lze použít k přístupu k obsahu při umístění ukazatele proměnnou.Například zvažte následující prohlášení:

int* myVariable;

Výraz *myVariable označuje int na adrese obsažené v proměnné myVariable.

Nepřímé odkazování operátor nelze použít pro ukazatele typu void*.Však můžete použít osazení převést na jiné ukazatele typu void ukazatele a naopak.

Ukazatel může být null.Operátor nepřímé odkazování použití ukazatele null způsobí, že chování definované implementací.

Uvědomte si, že předávání ukazatelů mezi metod může způsobit nedefinované chování.Příklady jsou ukazatele návratu do místní proměnné prostřednictvím Ref nebo Out parametru nebo jako výsledek funkce.Pokud ukazatel bylo nastavení pevného bloku, může být stanovena již proměnná, na který odkazuje.

Následující tabulka uvádí operátory a příkazy, které mohou pracovat na ukazatele v kontextu unsafe:

Příkaz nebo operátor

Pomocí

*

Provádí nepřímé odkazování ukazatel.

->

Člen struktura přistupuje prostřednictvím ukazatele.

[]

Index ukazatel.

&

Získá adresu proměnné.

++ a--

Přírůstky a sníží ukazatele.

+ a -

Provede ukazatel aritmetické operace.

==,! = <>,, < =, a > =

Porovná ukazatele.

stackalloc

Přidělí paměť v zásobníku.

fixedprohlášení

Dočasně řeší proměnné tak, aby bylo možné najít jeho adresu.

Specifikace jazyka C#

Další informace naleznete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.

Viz také

Referenční dokumentace

Nebezpečný kód a ukazatele (Příručka programování C#)

Ukazatel převody (Příručka programování C#)

Ukazatel výrazy (Příručka programování C#)

nebezpečné (C#-Reference)

Příkaz fixed (C#-Reference)

Výraz stackalloc (C#-Reference)

Boxing a Unboxing (C# programování Guide)

Koncepty

Příručka programování C#

Další zdroje

Typy (C#-Reference)