Převody ukazatele (Průvodce programováním v C#)
Následující tabulka zobrazuje předdefinované ukazatele implicitní převody.Implicitní převody může dojít v mnoha situacích, včetně metody vyvolání a přiřazení výkazů.
Ukazatel implicitní převody
Od |
Akce |
---|---|
Libovolný typ ukazatele |
void * |
Null |
Libovolný typ ukazatele |
Ukazatel explicitní převod slouží k provádění převodů, pro které neexistuje žádná implicitní převod pomocí výrazem přetypování.Následující tabulka uvádí tyto převody.
Ukazatel explicitní převody
Od |
Akce |
---|---|
Libovolný typ ukazatele |
Jiný typ ukazatele |
sbyte, byte, krátké, ushort, int, uint, long nebo ulong |
Libovolný typ ukazatele |
Libovolný typ ukazatele |
sbyte, byte, krátké, ushort, int, uint, long nebo ulong |
Příklad
V následujícím příkladu ukazatel na int je převeden na ukazatel na byte.Všimněte si, ukazatel odkazuje nejnižší adresou bajt proměnné.Při postupně zvyšovat výsledek až do velikosti int (4 bajty), můžete zobrazit zbývající bajty proměnné.
// compile with: /unsafe
class ClassConvert
{
static void Main()
{
int number = 1024;
unsafe
{
// Convert to byte:
byte* p = (byte*)&number;
System.Console.Write("The 4 bytes of the integer:");
// Display the 4 bytes of the int variable:
for (int i = 0 ; i < sizeof(int) ; ++i)
{
System.Console.Write(" {0:X2}", *p);
// Increment the pointer:
p++;
}
System.Console.WriteLine();
System.Console.WriteLine("The value of the integer: {0}", number);
// Keep the console window open in debug mode.
System.Console.WriteLine("Press any key to exit.");
System.Console.ReadKey();
}
}
}
/* Output:
The 4 bytes of the integer: 00 04 00 00
The value of the integer: 1024
*/
Viz také
Referenční dokumentace
Výrazy ukazatelů (Průvodce programováním v C#)
Typy ukazatelů (Průvodce programováním v C#)
unsafe (Referenční dokumentace jazyka C#)
fixed – příkaz (Referenční dokumentace jazyka C#)
stackalloc (Referenční dokumentace jazyka C#)