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)
Instrução fixed (referência de C#)