Gewusst wie: Inkrementieren und Dekrementieren von Zeigern (C#-Programmierhandbuch)

Verwenden Sie die Inkrement- und Dekrementoperatoren ++ und --, um die Zeigerposition durch sizeof (pointer-type) für einen Zeiger auf den Typ „pointer-type*“ zu ändern. Die Inkrement- und Dekrementausdrücke haben das folgende Format:

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

Die Inkrement- und Dekrementoperatoren können auf Zeiger eines beliebigen Typs außer den Typ void* angewendet werden.

Die Auswirkungen der Anwendung des Inkrementoperators auf einen Zeiger des Typs pointer-type besteht im Hinzufügen von sizeof (pointer-type) an die Adresse, die in der Zeigervariable enthalten ist.

Die Auswirkungen der Anwendung des Dekrementoperators auf einen Zeiger des Typs pointer-type besteht im Hinzufügen von sizeof (pointer-type) an die Adresse, die in der Zeigervariable enthalten ist.

Es werden keine Ausnahmen generiert, wenn die Operation die Domänengrenzen des Zeigers überläuft, und das Ergebnis hängt von der Implementierung ab.

Beispiel

In diesem Beispiel durchlaufen Sie ein Array, indem Sie den Zeiger durch die Größe int inkrementieren. Bei jedem Schritt stellen Sie die Adresse und den Inhalt des Arrayelements dar.

// 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);
            }
        }
    }
}

Wert:0 @ Adresse:12860272
Wert:1 @ Adresse:12860276
Wert:2 @ Adresse:12860280
Wert:3 @ Adresse:12860284
Wert:4 @ Adresse:12860288

Siehe auch

C#-Programmierhandbuch
Zeigerausdrücke
C#-Operatoren
Bearbeiten von Zeigern
Zeigertypen
Typen
unsafe
fixed-Anweisung
stackalloc