How to: Incrementar e decrementar ponteiros (guia de programação de C#)
Use o incremento e os operadores de decréscimo, ++ e --, para alterar o local do ponteiro por sizeof (pointer-type) para um ponteiro de ponteiro de tipo-tipo *. As expressões increment e decrement tirar da seguinte forma:
++p;
p++;
--p;
p--;
Os operadores increment e decrement podem ser aplicados a ponteiros de qualquer tipo, exceto o tipo de void*.
O efeito da aplicação do operador de incremento para um ponteiro do tipo pointer-type é adicionar sizeof (pointer-type) para o endereço contido na variável de ponteiro.
O efeito de aplicar o operador de decremento para um ponteiro do tipo pointer-type é subtrair sizeof (pointer-type) do endereço contido na variável de ponteiro.
Não permitir exceções são geradas quando a operação estoura o domínio do ponteiro e o resultado depende da implementação.
Exemplo
Neste exemplo, você percorrer uma matriz, aumentando o ponteiro pelo tamanho do int. Em cada etapa, você pode exibir o endereço e o conteúdo do elemento da matriz.
// compile with: /unsafe
class IncrDecr
{
unsafe static void Main()
{
int[] numbers = {0,1,2,3,4};
// Assign the array address to the pointer:
fixed (int* p1 = numbers)
{
// Step through the array elements:
for(int* p2=p1; p2<p1+numbers.Length; p2++)
{
System.Console.WriteLine("Value:{0} @ Address:{1}", *p2, (long)p2);
}
}
}
}
Consulte também
Referência
Expressões de ponteiro (guia de programação de C#)
Manipulação de ponteiros (guia de programação de C#)
Tipos de ponteiro (guia de programação C#)
fixed Statement (C# Reference)