Compartilhar via


Como: Incremento e de diminuição ponteiros (guia de programação translation from VPE for Csharp)

Use o incremento e operadores de decréscimo, ++ e --, para alterar o local do ponteiro por sizeof (pointer-type) para um ponteiro de tipo de ponteiro-tipo *. As expressões de incremento e de decremento assumem o formato seguinte:

++p;
P++;
--p;
p--;

Os operadores de incremento e de decremento podem ser aplicados a ponteiros de qualquer tipo, exceto o tipo de void*.

O efeito de aplicar o 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 a implementação.

Exemplo

Neste exemplo, você percorrer uma matriz aumentando o ponteiro pelo dimensionar da 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);
            }
        }
    }
}
Value:0 @ Address:12860272 Value:1 @ Address:12860276 Value:2 @ Address:12860280 Value:3 @ Address:12860284 Value:4 @ Address:12860288

Consulte também

Conceitos

Guia de Programação C#

Referência

Ponteiro expressões (guia de programação translation from VPE for Csharp)

Operadores C#

Manipulação de ponteiros (guia de programação translation from VPE for Csharp)

Tipos de ponteiro (translation from VPE for Csharp Programming guia)

(referência C#) não seguros

Instrução fixa (referência C#)

stackalloc (translation from VPE for Csharp Reference)

Outros recursos

Tipos (referência C#)