Compartilhar via


Conversões de ponteiro (guia de programação do C#)

A tabela a seguir mostra as conversões de ponteiro implícito predefinidos.Conversões implícitas podem ocorrer em diversas situações, incluindo chamadas de métodos e instruções de atribuição de valores a variáveis ou propriedades.

Conversões de ponteiro implícito

From

Para

Qualquer tipo de ponteiro

void *

Nulo

Qualquer tipo de ponteiro

Conversão explícita de ponteiro é usado para realizar conversões, para o qual não há nenhuma conversão implícita, por meio de uma expressão de conversão.A tabela a seguir mostra estas conversões.

Conversões explícitas de ponteiro

From

Para

Qualquer tipo de ponteiro

Qualquer outro tipo de ponteiro

SByte, byte, short, ushort, int, uint, long ou ulong

Qualquer tipo de ponteiro

Qualquer tipo de ponteiro

SByte, byte, short, ushort, int, uint, long ou ulong

Exemplo

No exemplo a seguir, um ponteiro para int é convertido em um ponteiro para byte.Observe que o ponteiro aponta para o byte da variável addressed menor.Quando você sucessivamente incrementa o resultado, até o tamanho do int (4 bytes), você pode exibir os bytes restantes da variável.

// 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
    */

Consulte também

Referência

Expressões de ponteiro (guia de programação do C#)

Tipos de ponteiro (C# Programming Guide)

não seguros (C# Reference)

Instrução fixed (referência de C#)

stackalloc (referência de C#)

Conceitos

Guia de programação do C#

Outros recursos

Tipos (referência de C#)