Compartir a través de


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#)

unsafe (Referencia de C#)

fixed (Instrucción, Referencia de C#)

stackalloc (Referencia de C#)

Conceptos

Guía de programación de C#

Otros recursos

Tipos (Referencia de C#)