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

A tabela a seguir mostra as conversões de predefinidos ponteiro implícito. 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 de ponteiro explícito é 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 de ponteiro explícita

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 endereçado menor. Quando você sucessivamente incrementar 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 de C#)

Tipos de ponteiro (guia de programação C#)

unsafe (C# Reference)

fixed Statement (C# Reference)

stackalloc (referência de C#)

Conceitos

C# Programming Guide

Outros recursos

Types (C# Reference)