Conversiones de puntero (Guía de programación de C#)
La tabla siguiente muestra las conversiones de puntero implícitas predefinidas. Las conversiones implícitas se pueden dar en muchas ocasiones, incluidas la invocación a métodos y las instrucciones de asignación.
Conversiones de puntero implícitas
From |
Para |
---|---|
Cualquier tipo de puntero. |
void* |
null |
Cualquier tipo de puntero. |
La conversión de puntero explícita se utiliza para realizar conversiones para las que no existe conversión implícita utilizando una expresión de conversión de tipos. La siguiente tabla muestra estas conversiones.
Conversiones de puntero explícitas
From |
Para |
---|---|
Cualquier tipo de puntero. |
Cualquier otro tipo de puntero |
sbyte, byte, short, ushort, int, uint, long o ulong |
Cualquier tipo de puntero. |
Cualquier tipo de puntero. |
sbyte, byte, short, ushort, int, uint, long o ulong |
Ejemplo
En el ejemplo siguiente, un puntero a int se convierte en un puntero a byte. Observe que el puntero señala al byte direccionado más bajo de la variable. Cuando incrementa sucesivamente el resultado, hasta el tamaño de int (4 bytes), puede mostrar los bytes restantes de la variable.
// 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
*/
Vea también
Referencia
Expresiones de puntero (Guía de programación de C#)
Tipos de puntero (Guía de programación de C#)
fixed (Instrucción, Referencia de C#)