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

C# Operators

Manipulação de ponteiros (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)